5

每当用户单击其中一个锚元素时,我都想做一个功能,例如

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

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

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

我知道我能做到

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

但这也会在我单击选择元素时触发,并且我不想让用户感到困惑,然后做某事,就在选择元素值发生变化时。

4

2 回答 2

21

你不必使你的函数内联。

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

$('.element').on('click', doStuff);
$('select').on('change', doStuff);
于 2013-10-08T20:34:14.090 回答
7

处理此问题的最易读的方法之一是创建一个单独的函数:

function doStuff(){
 //do stuff here
}

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

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

这也为您提供了一个很好的机会,通过给该函数一个好听、有意义的名称来更清楚您的代码的用途。

于 2013-10-08T20:33:52.050 回答