使用多个选择器,每个选择器具有不同的事件

时间:2016-02-05 14:56:49

标签: javascript jquery jquery-events

我需要这个:

$("#household").children().change(function(){
    alert("changed");
});

$('.ui-icon.ui-icon-closethick.delete').click(function(){
    alert("changed");
});

变成了这样的东西:

$("#household").children().change || $('.ui-icon.ui-icon-closethick.delete').click(function(){
    alert("changed");
});

我知道底部代码不正确,但我希望它能解释我的意思。如果更改了alert并点击了#household.children(),我希望执行.ui-icon.ui-icon-closethick.delete,但不会再编写代码两次。

3 个答案:

答案 0 :(得分:5)

你可以通过将公共逻辑放在它自己的函数中来实现这一点,然后由两个事件调用它们:

function changed() {
    console.log('changed')
}

$("#household").children().change(changed);
$('.ui-icon.ui-icon-closethick.delete').click(changed);

答案 1 :(得分:2)

在其他地方声明该函数并将对它的引用传递给两个事件处理程序:

function somethingChanged() {
  alert('changed');
}

$(...).change(somethingChanged);
$(...).click(somethingChanged);

答案 2 :(得分:0)

我认为只有jquery才有可能。你可以这样开始:

$("#household,.ui-icon.ui-icon-closethick.delete")...

但是一切都会相似(例如,两者都会有点击或更改)