我有一个JQuery click()函数,我需要为另一个元素添加change()事件(只能触发change()事件)。
我如何组合它,但使这个额外的元素只触发两个事件之一?
$('body').on('click change', '.click-1, .click-2, :checkbox, .change', function()我添加了更改事件和change类。同样对于复选框,它们会触发这两个事件吗?(这会是个问题吗?)
是否有任何方法使元素只触发该事件而不触发click()?
我只需要找到一种方法,不重复相同的代码(50行)两次。
编辑: Fix (感谢@somethinghere):
$('body').on('click change', '.click-1, .click-2, :checkbox, .change', function(event) {
if (event.type == 'click' && $(this).hasClass( 'change' )) {
event.preventDefault();
event.stopImmediatePropagation();
return;
}
// more code
});正确的修复方法应该是只对按钮使用click()。
发布于 2015-12-07 18:30:15
简单地,存储函数并将函数作为参数传递两次:
function yourfunctionname(e) {
...
}
$('body').on('click', '.click-1, .click-2', yourfunctionname)
.on('change', ':checkbox, .change', yourfunctionname);https://stackoverflow.com/questions/34138885
复制相似问题