0

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

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

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

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

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

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

4

3 回答 3

2

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

$('.class1').click(some_function1);
于 2013-09-18T15:59:48.473 回答
1

这是一个概念证明。当然,您需要验证正则表达式返回等。但要考虑一下:假设该类将以数字结尾,并且您具有相应的功能等。

$('.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 ');
   }

}

于 2013-09-18T16:39:54.357 回答
1
//param1: class name as string param2: function to execute
function binder(class, f){
  $("'."+class+"'").click(f);
}

然后用你的类调用函数。

于 2013-09-18T16:06:56.573 回答