如何重写先前设置的jquery事件处理程序



在我的代码中,设置了一个元素的事件处理程序,它将元素的css高度更改为100px。在其他地方,如果满足某些条件,我希望运行不同的事件处理程序,它应该覆盖以前的事件处理程序并将其高度更改为200px。

是否有办法做到这一点,或清除所有以前设置的事件处理程序的元素?

是的,就用.off(),就像

$('selector').off('eventname')

这是一个hack,但它听起来像你试图破解别人的代码没有能力直接改变它,所以你可能不得不求助于这个

如果你只需要在它们的document.ready()之后调用一些东西,并且你不控制document.ready()语句的顺序,那么你可以在你的文档中放入一些像这样的短超时代码。准备好了处理程序:

$(document).ready(function() {
    setTimeout(function() {
        $('selector').off('eventname').on('eventname', your_event_handler_here);
    }, 1);
});

setTimeout()将在所有document.ready()处理程序运行后运行。

另一种说法:

$(window).on('load', function() {
   $('selector').off('eventname').on(your event handler here);
});

加载在文档就绪后执行

相关内容

  • 没有找到相关文章

最新更新