jQuery具有多个元素和多个事件的相同功能

时间:2013-10-08 20:31:02

标签: javascript jquery events triggers

每当用户点击其中一个锚元素时,我都会有一个函数,比如这个

$('.element').on('click', function(){
// do stuff here
});

如果select元素更改了它的值,我想做同样的事情,比如这个

$('select').on('change', function(){
// do same stuff here
});

我知道我能做到

$('.element', 'select').on('click change', function(){
// do stuff here
});

但是每当我点击select元素时,这也会触发,我不想混淆用户并做一些事情,只是当select元素值发生了变化时。

2 个答案:

答案 0 :(得分:20)

你没有 来使你的函数内联。

var doStuff = function() {
  // do stuff here
});

$('.element').on('click', doStuff);
$('select').on('change', doStuff);

答案 1 :(得分:7)

解决此问题的最可读方法之一是创建一个单独的函数:

function doStuff(){
 //do stuff here
}

$('.element').on('click', function(){
  doStuff();
});

$('select').on('change', function(){
  doStuff();
});

通过为该函数提供一个漂亮,有意义的名称,这也为您提供了一个很好的机会,使您的代码更清晰。