jquery - 如何使用不同的选择器进行 .off() 和 .on() 操作

标签 jquery

代码链接在这里 - http://jsfiddle.net/V5g2m/

var $template = $('div.main');

$template.off('change.filterIt', 'select.filter')
    .on('change.filterIt', 'select.filter', function(){
    alert(1);
});

$template.off('change', 'select.filter[name="source"]')
    .on('change.getNewSource', 'select.filter[name="source"]', function(){
    alert(2);
});

任何人都可以帮我解决我的问题 - 如何仅从该选择器 select.filter[name="source"] 取消事件 change.filterIt 的绑定(bind)。它应该保留在其他 select.filter 元素上,但不会在当前元素上触发。

最佳答案

在添加事件之前使用 :not() 将其过滤掉

var $template = $('div.main');

$template.off('change.filterIt', 'select.filter')
.on('change.filterIt', 'select.filter:not([name="source"])', function(){
    alert(1);
});

$template.off('change', 'select.filter[name="source"]')
    .on('change.getNewSource', 'select.filter[name="source"]', function(){
    alert(2);
});

FIDDLE

关于jquery - 如何使用不同的选择器进行 .off() 和 .on() 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21982282/

相关文章:

javascript - 我如何更好地重新排序我的 javascript 代码?

javascript - 如何修复 Ajax 从数据库中获取任何内容?

javascript - 如何选择 10 个随机文件路径插入到 Flash 视频的 div 中?在 JavaScript 中

javascript - jquery函数无法捕获动态生成的id

javascript - JQuery 根据所选选项将Class 添加到元素

jquery 在带有动画的高度之间切换

javascript - CKEditor - insertText 在 setData 后不工作

javascript - 使用 Javascript 创建回调

jquery - Bootstrap 3 每次折叠其他部分一个

javascript - 如何在 javascript 中自定义 <span>?