相同的jQuery事件,单独的功能

时间:2011-06-07 18:53:26

标签: jquery html events

假设我有一个需要在$(document).mousemove()上执行的功能。然后我决定我有另一个需要在同一个事件上执行的函数。也许这两个函数是无关的,因此在模块化的名义下,可以有两个单独的函数来监听$(document).mousemove()

这是不好的形式?是否有性能影响?

3 个答案:

答案 0 :(得分:2)

jQuery会自动将事件附加到链中,因此对同一事件具有重复的处理程序定义没有问题。如果你可以合理地将两个处理程序定义组合成一个,那么这种方法当然没有任何问题,但除此之外,除了可读性之外没有明显的价值。

答案 1 :(得分:0)

你能不能简单地这样做吗?除非我误解你的问题

$(document).mousemove(function(){
    callOneFunction();
    callTwoFunction();
});

答案 2 :(得分:0)

当然如果你决定设置1000个功能听一个事件我会说你的设计有问题,但对我来说两个功能都可以

我会使用命名空间处理程序以保持可维护性,至少如果Saint John在jQuery中设计它,在某些情况下值得使用 所以 你这样做:

$(elem).bind('mousemove.ns1', funcOne);
$(elem).bind('mousemove.ns2', funcTwo);

这样你就可以一个一个地解开绑定

$(elem).unbind('mousemove.ns1');
$(elem).unbind('mousemove.ns2');

甚至

$(elem).unbind('.ns1');