这是我的代码:
$('body').on('click', '.class1', function() {
sth ...
});
我想将这些行添加到我的代码中:
$('body').on('click', '.class2', function() {
some other things ...
});
但这似乎是一种错误的做法......我的IDE(pyCharm)说你不应该使用重复的jQuery选择器'
我能知道什么?
答案 0 :(得分:2)
你可以链接.on
个电话,因为它们会在同一个选择器上发挥作用:
$('body').on('click', '.class1', function() {
sth ...
}).on('click', '.class2', function() {
some other things ...
});
这会使 pyCharm 沉默: - )
你也可以通过一次点击处理来解决它,并通过.is()
调用进行区分,尽管这可能会使你的代码不那么可读:
$('body').on('click', '.class1, .class2', function() {
if ($(this).is('.class1')) {
sth ...
} else {
some other things ...
}
});
答案 1 :(得分:1)
没有任何结构上的错误,您的IDE会发出错误警报,这些错误警报比与代码有效性相关的性能更强
为了满足IDE,您可以将$('body')
缓存在变量或链多个on()
var $body=$('body');
$body.on('click', '.class1', function(){...});
$body.on('click', '.class2', function(){...});
或者
$('body').on('click', '.class1', function(){...})
.on('click', '.class2', function(){...});
另一种方法是为多个类使用一个单击侦听器,并在处理程序
中使用条件$('body').on('click', '.class1, .class2', function(){
if($(this).hasClass('class1')){
// do class 1 stuff
}else{
// do class 2 stuff
}
});