内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
是否有一种优雅的方法来暂时抑制jQuery事件?使用这样的代码:
$(element).unbind(event, function1).unbind(event, function2); // code for which the event is suppressed $(element).bind(event, function1).bind(event, function2);
但是,一个Ajax访问是特殊的
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(); }); }
$(element).click(function(e) { e.preventDefault(); // Check for fired class if ($(this).hasClass('fired') == false) { // Add fired class to all instances of element $(element).addClass('fired'); // Do the rest of the function... // Remove fired class to 'reactivate' events $(element).removeClass('fired'); } }