0

Ive used when a select list's option is changed as an event listener, with something like this:

$('#mySelect').change(function() {
        functionToRun();
});

可以多次使用事件监听器吗?所以像下面这样。我知道对于这个确切的例子它没有意义,但是对于更复杂的带有条件的代码,如果我使用了两次事件监听器,我会更容易维护我的代码。

$('#mySelect').change(function() {
        functionToRun();
});

//other code

$('#mySelect').change(function() {
        functionToRunTwo();
});

另外,我有一些在 dom 就绪上运行的代码和一些在窗口加载时运行的代码。在两个实例中使用相同的事件侦听器是否可以?

4

2 回答 2

0

您可以这样做,但如果您想根据上下文使用该功能,请确保取消绑定您不需要的功能。

于 2012-05-21T11:41:46.133 回答
0

它将按预期工作:两个事件侦听器都将被触发,这当然没有问题。从jQuery.bind()(由 内部调用jQuery.change()):

当一个事件到达一个元素时,所有绑定到该元素的事件类型的处理程序都会被触发。如果注册了多个处理程序,它们将始终按照它们被绑定的顺序执行。在所有处理程序都执行后,事件将沿着正常的事件传播路径继续。

我不确定这是否回答了你的第二个问题。

于 2012-05-21T11:44:06.453 回答