有没有一种优雅的方法可以暂时抑制jQuery事件?我使用的代码如下:
$(element).unbind(event, function1).unbind(event, function2);
// code for which the event is suppressed
$(element).bind(event, function1).bind(event, function2);
但我发现它有点笨拙,并且不能很好地扩展到许多事件。为什么我要暂时禁止事件?在Ajax访问期间,我使用BlockUI插件来阻止UI。这是通过BlockUI提出的:$().ajaxStart($.blockUI).ajaxStop($.unblockUI)来完成的。
但是,一次Ajax访问是特殊的,所以我需要一条不同的消息。ajaxStart和ajaxStop事件会干扰消息代码(不显示任何内容):
function message(text, callback) {
if (text == undefined) {
$.unblockUI();
return;
}
// $().unbind('ajaxStop', $.unblockUI).unbind('ajaxStart', $.blockUI);
$("#message_text").html(text);
$.blockUI({message: $("#message")});
$("#message_ok").click(function() {
// $().bind('ajaxStop', $.unblockUI).bind('ajaxStart', $.blockUI);
$.unblockUI();
if (callback != undefined) callback();
});
}
只有当我取消对unbind()和bind()行的注释时,它才能工作。
https://stackoverflow.com/questions/1809275
复制相似问题