是否有更短的语法来写这个
$('.class1').click(function() {
some_function1();
});
$('.class2').click(function() {
some_function2();
});
$('.class3').click(function() {
some_function3();
});
$('.class4').click(function() {
some_function4();
});
知道所有功能都不同!
答案 0 :(得分:2)
由于函数似乎不接受任何特殊参数,因此将它们作为回调本身传递
$('.class1').click(some_function1);
答案 1 :(得分:1)
//param1: class name as string param2: function to execute
function binder(class, f){
$("'."+class+"'").click(f);
}
然后用你的类调用该函数。
答案 2 :(得分: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 ');
}
}