是否可以将两个单独的函数绑定到同一事件

时间:2009-06-12 18:15:59

标签: javascript jquery

基本上我想将函数A绑定到所有输入。像这样:

$('input').bind('change', function() { bla bla bla });

然后我想再绑定一些不同的东西:

$('#inputName').bind('change', function() { do additional processing..});

这可能吗?它有用吗?我错过了语法吗?这样的罚款真的很好(这意味着我在其他地方有一个错误导致其中一个不能绑定)?

5 个答案:

答案 0 :(得分:3)

对你的问题的简短回答是肯定的。

如果您希望将其他功能绑定到#inputName的更改事件,那么您的代码示例应该可以正常工作。

如果您希望更改处理事件的函数,您可以在重新绑定任何新事件处理程序之前取消绑定change事件的所有处理程序...

$('#inputName').unbind('change');

但要小心......没有尝试这个,我不确定任何副作用。

答案 1 :(得分:1)

为什么不创建一个同时调用它们的函数,然后将这个新函数绑定到事件?

答案 2 :(得分:0)

在你的代码中,一个输入,另一个inputName,是一个拼写错误?

搜索,这里有一个similar question

$(document).ready(function() {
  $("input").change(function() {
    console.log("function1");
  });

  $("input").change(function() {
    console.log("function2");
  });
});

答案 3 :(得分:0)

假设上面已经解决(即你试图将一个函数绑定到同一个对象),是的,你可以将多个事件处理程序绑定到同一个。

为了让您的生活更轻松,也可以查看名称空间(因此您可以为同一事件对事件处理程序进行分组)。

答案 4 :(得分:0)

它可以很好地绑定两者。它有点有趣的地方是你试图通过返回false来防止默认行为。绑定函数不能阻止彼此以这种方式运行,但它们可以阻止父元素的事件处理程序运行。