【发布时间】:2011-09-30 13:24:26
【问题描述】:
当通过 ajax 加载选项卡时,是否有适当的方法在 JQuery UI 中重新绑定事件。例如,在下面的代码中,我让成功事件调用了一个“initBinding()”函数,该函数为不同的类设置了一些自定义点击事件处理程序。这样做的问题是,当我多次切换选项卡,然后触发其中一个点击事件时,我会得到一些奇怪的屏幕闪烁效果。如果我刷新整个页面,然后直接进入点击事件,它不会闪烁。所以我认为这与它绑定多次有关。
如果我从成功事件中取出“initBinding()”方法,任何通过 ajax 加载的选项卡都不会触发我设置的任何事件。有没有标准/更好的方法来处理这样的绑定事件?
$(document).ready(function () {
$("#tabs").tabs({
select: function (event, ui) {
var tabID = "#ui-tabs-" + (ui.index + 1);
$(tabID).html("<b>Fetching Data....Please wait....</b>");
},
ajaxOptions: {
error: function (xhr, status, index, anchor) {
$(anchor.hash).html("Could not load tab data");
},
success: function (xhr, status, index, anchor) {
initBinding();
}
}
});
});
function initBinding() {
$(".editButton").click(function () {
//event logic...
});
}
【问题讨论】:
标签: javascript jquery-ui jquery