有没有一种优雅的方式来暂时禁止jQuery事件?我用这样的代码:暂时禁止jQuery事件处理
$(element).unbind(event, function1).unbind(event, function2);
// code for which the event is suppressed
$(element).bind(event, function1).bind(event, function2);
,但我觉得这是一个有点笨拙,而不是非常扩展到许多事件。我为什么要暂时抑制事件?我使用BlockUI插件在Ajax访问期间阻止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();
});
}
只有当我去掉拆散()和绑定()线,它是工作。
你的意思是,防止从运行结果代码? – nalply 2012-05-23 15:25:59
为什么是*编辑答案*,是不是我说的?我全都被事件处理人员和所有他们做的事情所困扰,我误用了这个词。 – Eric 2012-05-23 15:30:52
没问题,你编辑了答案。欢迎来到Stackoverflow。 – nalply 2012-05-24 05:30:54