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

标签 javascript jquery performance

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

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

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

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")

最佳答案

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

否则,我通常会保持尽可能多地远离 DOM 的心态,这包括绑定(bind)和解除绑定(bind)事件。考虑到这一点,我会绑定(bind)事件一次,并检查事件处理程序中的任何条件。

关于javascript - 绑定(bind)/取消绑定(bind)事件或使用条件(jQuery)更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871036/

相关文章:

javascript - 将 this.props.functionName() 的结果传回父级

javascript - 如何在 jquery 的 do while 循环中停止 setInterval

JavaScript 表单错误状态不会停留在同一页面上

jQuery addClass 保持类在那里

php - 测量 PHP 性能

javascript - 在 JSONP 结果中设置 sessionStorage?

javascript - 嵌套 Bootstrap Collapse 事件类问题

javascript - 在没有 ID 的情况下确定两个 HTML 元素是否不同

r - 最接近估计路径的点

sql-server - BETWEEN 运算符与 >= AND <= : Is there a performance difference?