我已經把我的jquery對話框內容放在div中。但每當我以這種方式初始化對話框時:生成多個jQuery UI對話框
$(".uof_add_form").dialog({
autoOpen : false,
height : 500,
width : 600,
modal : true,
buttons : {
"Done" : function() {
$(this).close();
}
}
});
內容從我的div中刪除。由於這個原因,我不能使用
$("#new_form").on("click",".add_level", function(){
var wrapper_data = $(this).parent().parent().parent().parent();
wrapper_data.find(".uof_add_form").dialog("open");
});
打開我的對話框。
由於我的內容是動態生成的,因此我需要使用$(this)
。
有什麼方法可以讓我的內容留在我的div裏面?
我改變了我的代碼來初始化上點擊自己以這種方式對我的div做display:none
: -
$("#new_form").on("click",".add_level", function(){
var wrapper_data = $(this).parent().parent().parent().parent();
wrapper_data.find(".add_level_pop").dialog({autoOpen : true, height : 500,width : 600,modal : true, buttons : { "Done" : function() { $(this).dialog('close'); } } });
});
對話框上的第一次點擊,但在第二次點擊對話框打開不會因爲被解僱在對話框的初始化過程中內容已被傳送到不同的地方。
我還增加了一個樣品上的jsfiddle請here
對不起,不完全是我想要的,我不能做這個var $ dialog = $(「。包裝#dialog「);因爲我不知道什麼是我的新生成的ID和它在哪個包裝div它屬於 – 2013-04-09 10:16:36
但你應該知道什麼'id'你有,並能夠保存一個引用一個更動態的例子將有助於理解問題另一件事(儘管你說你不能使用那個部分):你不應該使用'.parent()'調用鏈,嘗試使用jQuery的[ '.closest(selector)'](http://api.jquery.com/closest/) – Wolfram 2013-04-09 10:31:52
請檢查jsfiddle代碼,我已經更新它了,請注意wrapper div是自動生成的 – 2013-04-09 10:35:43