我一次将事件绑定到两个ID。事实上,有没有办法定位一个ID来取消绑定事件?
以下是我的代码的简化版本。在AJAX请求返回HTML模板后,一个事件是未绑定/绑定的...如果模板'AA'呈现,则绑定第一个事件;如果模板“BB”呈现,则绑定第二个脚本。
//Template AA
$('#container').off('dblclick', '#store, #compare_store');
$('#container').on('dblclick', '#store, #compare_store', function(){
console.dir('test1');
});
//Template BB
$('#container').off('dblclick', '#store'); //This does not unbind the event listed as above
$('#container').on('dblclick', '#store', function(){
console.dir('test2');
});
/* Console Output When double-clicking '#store':
test1
test2
*/
双击'#store'元素时,当前触发了两个事件。期望的效果是让第二个事件解除绑定第一个事件(仅限'#store'),并绑定一个新事件。
我知道单独绑定每个ID会提供所需的结果。我也知道使用课程也可以胜任。
提前谢谢!
答案 0 :(得分:0)
填充选择器,以便off
方法调用与on
选择器匹配:
//Template AA
$('#container').on('click', '#compare_store', function(){
console.log("a", this);
}).on('click', '#store', function(){
console.log("b", this);
});
//Template BB
$('#container').off('click', '#store'); //This does not unbind the event listed as above