绑定/取消绑定事件或使用条件(jQuery)更好吗?

时间:2010-10-06 09:15:16

标签: javascript jquery performance

好的,我猜这是一个性能问题。

我有一个带有两个导航链接的滑块(下一个和上一个),当滑块到达行的末尾时,我正在取消绑定下一个按钮,然后当它向另一个方向移动时再次绑定。我正在为下一个按钮执行相同的操作,但是相反。

下一个按钮的代码看起来像这样

if (at end of slider) {
  nextBtn.unbind("click")
} else if (not already bound) {
  nextBtn.bind("click",clickHandler)
}

所以...这样做是否更好,或者在点击处理程序中有条件来检查$.data(nextBtn,"state","on")$.data(nextBtn,"state","off")

2 个答案:

答案 0 :(得分:2)

我会说条件陈述。

每次绑定和取消绑定事件时,只需放入jquery创建和管理整个新对象的事件。

答案 1 :(得分:2)

如果您使用的是实际的<button>,则可以将disabled属性设置为true,而不必担心事件处理程序中的任何内容,因为事件永远不会被触发。这还有一个额外的好处,就是添加一个视觉助手告诉用户有问题的按钮不再起作用(无论选择的按钮表示如何,你都应该这样做。)

否则,我通常会尽可能地保持DOM的思维方式,包括绑定和解除绑定的事件。考虑到这一点,我会将事件绑定一次,并检查事件处理程序中的任何条件。