绑定多个单击事件的较短语法-javascript

绑定多个单击事件的较短语法-javascript,javascript,jquery,onclick,Javascript,Jquery,Onclick,有没有更简短的语法来写这个 $('.class1').click(function() { some_function1(); }); $('.class2').click(function() { some_function2(); }); $('.class3').click(function() { some_function3(); }); $('.class4').click(function() { some_function4(); }); 知道所有

有没有更简短的语法来写这个

$('.class1').click(function() {
   some_function1();
});

$('.class2').click(function() {
   some_function2();
});

$('.class3').click(function() {
   some_function3();
});

$('.class4').click(function() {
   some_function4();
});

知道所有的功能都是不同的

因为函数似乎不接受任何特殊参数,所以将它们作为回调本身传递

$('.class1').click(some_function1);

因为函数似乎不接受任何特殊参数,所以将它们作为回调本身传递

$('.class1').click(some_function1);
然后用类调用函数


然后用类调用函数。

这里是概念证明。当然,您需要验证regex返回等等。。但是需要考虑的是:假设类以一个数字结尾,并且您有相应的函数等等

$('.class1, .class2').click(function() {
  var num = 'some_function' + this.className.match(/(\d+)$/)[0];
  test[num]();
});

var test = {
   some_function1:function(){
      console.log('in func 1 ');
   },
   some_function2:function(){
      console.log('in func 2 ');
   }

}这是一个概念证明。当然,您需要验证regex返回等等。。但是需要考虑的是:假设类以一个数字结尾,并且您有相应的函数等等

$('.class1, .class2').click(function() {
  var num = 'some_function' + this.className.match(/(\d+)$/)[0];
  test[num]();
});

var test = {
   some_function1:function(){
      console.log('in func 1 ');
   },
   some_function2:function(){
      console.log('in func 2 ');
   }

}

不太可能,您可以对所有元素使用相同的处理程序,但需要根据哪个元素筛选要调用的回调clicked@A.Wolff您能告诉我如何对所有元素使用相同的处理程序吗?我认为更有效的方法是在所有这些元素上放置一个类,并根据该类为它们分配正确的函数。但是,如果你需要这种分离,那么你就不能真正*提高效率。*我说真的就像你能说的那样。。。但是它不会被人的眼睛注意到,它会使ms的十个不同。
$('.class1,.class2,…)。单击(…)
这就是我的意思,不是真正的捷径,因为你仍然需要在处理程序内部过滤已单击的元素。是的,我知道,但感谢不是真的,您可以对所有元素使用相同的处理程序,但需要根据哪个元素筛选要调用的回调clicked@A.Wolff您能告诉我如何对所有元素使用相同的处理程序吗?我认为更有效的方法是在所有这些元素上放置一个类,并根据该类为它们分配正确的函数。但是,如果你需要这种分离,那么你就不能真正*提高效率。*我说真的就像你能说的那样。。。但是它不会被人的眼睛注意到,它会使ms的十个不同。
$('.class1,.class2,…)。单击(…)
这就是我的意思,不是真正的捷径,因为你仍然需要在处理程序内部过滤已单击的元素。是的,好的,我知道这一点,但谢萨伦的答案在这种情况下更好,或者我不知道你如何使用它,阿伦的答案在这种情况下更好,或者我不知道你如何使用它