我在左侧有导航标签,我在右侧加载内容。 我使用live来附加click事件但是如何附加这些类型的函数
$('#form').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
$("#dialog-confirm").dialog({
resizable: true,
autoOpen: false,
height:427,
width:650,
modal: true,
buttons: { "Ok": function() { $(this).dialog("close"); },
"Cancel": function() { $(this).dialog("close"); } },
});
我也需要附加ajaxoptions
答案 0 :(得分:1)
加载新内容时,必须从自己的代码中重新应用“.dialog()”之类的内容。通常,您可以在用于加载内容的ajax机制的“success”处理程序中执行此操作。
这意味着组织页面“小部件”设置代码是一个非常好的主意,以便可以调用它来操作页面的任意部分。在页面初始化时,您将针对<body>
运行它,但在动态内容加载后,您将针对已更新的容器元素运行它。
编辑 - 更多详细信息:具体如何执行此操作取决于您,具体取决于您在应用程序中执行的操作类型。我写了一个jQuery plugin来处理这个问题,但是出于很多目的,这可能有点过头了。
一般的想法是你有一个初始化函数:
function initializeFeatures(startingPoint) {
在函数内部,您可以执行初始化对话框之类的操作,并且可以使用“startingPoint”参数完成工作的代码。换句话说,当代码必须“找到”要设置的页面元素时,它应始终从那里开始:
$(startingPoint).find('.dialog-container').dialog({
resizable: true,
autoOpen: false,
// ...
});
然后,在您加载内容后的“成功”处理程序中,您可以再次调用您的函数:
$('#dynamic').load('/your/url', function() {
initializeFeatures(this);
});
同样,它完全取决于您的申请的确切细节。