我已经把我的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