首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将change()事件添加到现有的click()函数中,而不触发第一个事件

将change()事件添加到现有的click()函数中,而不触发第一个事件
EN

Stack Overflow用户
提问于 2015-12-07 16:51:29
回答 1查看 316关注 0票数 0

我有一个JQuery click()函数,我需要为另一个元素添加change()事件(只能触发change()事件)。

我如何组合它,但使这个额外的元素只触发两个事件之一?

代码语言:javascript
复制
$('body').on('click change', '.click-1, .click-2, :checkbox, .change', function()

我添加了更改事件和change类。同样对于复选框,它们会触发这两个事件吗?(这会是个问题吗?)

是否有任何方法使元素只触发该事件而不触发click()

我只需要找到一种方法,不重复相同的代码(50行)两次。

编辑: Fix (感谢@somethinghere):

代码语言:javascript
复制
$('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()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-07 18:30:15

简单地,存储函数并将函数作为参数传递两次:

代码语言:javascript
复制
function yourfunctionname(e) {
   ...
}

$('body').on('click', '.click-1, .click-2', yourfunctionname)
    .on('change', ':checkbox, .change', yourfunctionname);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34138885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档