我正在使用此答案中的代码 https://stackoverflow.com/a/18055789/3250077用于项目。
在第12行的这个小提琴http://jsfiddle.net/UpuDU/中有一个off
方法
faqTab.off('click').on('click', function()
我是编程的新手,我读到它删除了事件处理程序,但当我删除代码的那部分时,就像这样
faqTab.on('click', function()
似乎没有任何改变。代码中发生了什么?这真的是必要的还是只是一个好的做法"。不使用它会导致更复杂的代码出现问题吗?
答案 0 :(得分:0)
如果在添加新处理程序之前未删除事件处理程序,则最终可能会为同一事件多次调用相同的方法。因此,这是否有所作为的答案实际上取决于此代码运行的频率。作为一般规则,在添加新处理程序之前删除现有处理程序并不是一种不好的做法。
采用以下示例。在此示例中,如果直接或间接从单击的按钮调用此单击函数,则会出现问题:
var clickFunction = function () {
// add the event AGAIN: BAD!
$("#test-button").on("click", clickFunction);
};
在JSFiddle中看到这一点: http://jsfiddle.net/4Qv8T/1/