コンテナに動的にデータを入力する同じクラス名の複数のdivがあります。
<div class="container">
<div class="content cancel"><button class="showModal"></button></div>
<div class="content cancel"><button class="showModal"></button></div>
<div class="content cancel"><button class="showModal"></button></div>
<div class="content cancel"><button class="showModal"></button></div>
<div class="content cancel"><button class="showModal"></button></div>
</div>
各div.contentには、jqueryUIダイアログを表示するボタンがあります。モーダルが起動されると、保存とキャンセルの2つのボタンがあります。[キャンセル]をクリックすると、モーダルを起動したdivのインデックス位置がアラートに表示され、起動元のdiv.contentコンテナからクラス「cancel」が削除されます。
<div class="modal">
<button class="save">save</button>
<button class="RemoveCancel">cancel</button>
</div>
これが私のJqueryです
$(".modal").on("click", ".RemoveCancel", function () {
var parent = $(this).closest(".content");
var modalTest = $(".content").index(parent);
$("div.content:nth-child(" + (modalTest + 1) + ")").removeClass("cancel");
alert("div.content:nth-child(" + (modalTest + 1) + ")");
});
とモーダルのために
$(function () {
$(".modal").dialog({
autoOpen: false,
height: 140,
modal: true
});
$(".showModal").live('click', function () {
$(".modal").dialog("open");
return false;
});
$(".save, .RemoveCancel").live('click', function () {
$(".modal").dialog("close");
return false;
});
});
入力していただきありがとうございます。現在、アラートの値は-1です。インデックスのセレクターを省略すると、多くのdivがインデックスから離れていても表示されます。これが理にかなっていることを願っています、もう一度ありがとう。