上の複数のものを定義してそれは私のコードですは単一のセレクタ
$('body').on('click', '.class2', function() {
some other things ...
});
しかし、行うには間違った方法のようです...私のIDE(pyCharm)は、「重複するjQueryセレクタを使用しないでください」と言っています。
私は何を知ることができますか?
上の複数のものを定義してそれは私のコードですは単一のセレクタ
$('body').on('click', '.class2', function() {
some other things ...
});
しかし、行うには間違った方法のようです...私のIDE(pyCharm)は、「重複するjQueryセレクタを使用しないでください」と言っています。
私は何を知ることができますか?
ハンドラ内で条件文を使用するのと1つのクリックハンドラでそれを解決し、.is()
コールと区別することもできますが、コードを読みにくくする可能性があります。
$('body').on('click', '.class1, .class2', function() {
if ($(this).is('.class1')) {
sth ...
} else {
some other things ...
}
});
あり、構造的に間違って何もありませんし、あなたのIDEを使用して、変数やチェーン複数で$('body')
on()
var $body=$('body');
$body.on('click', '.class1', function(){...});
$body.on('click', '.class2', function(){...});
をキャッシュすることができIDEを満たすために、コードの妥当性
に関連するよりも、指向多くのパフォーマンスです誤報を与えています
それとも
$('body').on('click', '.class1', function(){...})
.on('click', '.class2', function(){...});
別のアプローチは、複数クラッセのためにワンクリックリスナーを使用することです
$('body').on('click', '.class1', function() {
sth ...
}).on('click', '.class2', function() {
some other things ...
});
あなたは
:-) pyCharmを沈黙されます:あなたは、彼らが同じセレクタに作用してチェーン.on
呼び出しを、することができます
$('body').on('click', '.class1, .class2', function(){
if($(this).hasClass('class1')){
// do class 1 stuff
}else{
// do class 2 stuff
}
});