假设我有一个需要在$(document).mousemove()
上执行的功能。然后我决定我有另一个需要在同一个事件上执行的函数。也许这两个函数是无关的,因此在模块化的名义下,可以有两个单独的函数来监听$(document).mousemove()
。
这是不好的形式?是否有性能影响?
答案 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');