私はさまざまな機能を持つ動的なプラグインを持っていますが、私はクリックイベントでこれらの機能を起動しています。複数のjQuery .on()を1つに置き換えます
マイHTML:
<div class="container">
<div class="el" id="el1">
<a href="#" class="edit-el">Edit</el>
<a href="#" class="delete-el">Delete</el>
</div>
</div>
これは私のjavascriptです:
// Edit an el
$('.container').on('click', '.edit-el', function(e){
var elId = $(e.currentTarget).closest('.el')[0];
plugin.editEl(elId);
});
// Delete an el
$('.container').on('click', '.delete-el', function(e){
var elId = $(e.currentTarget).closest('.el')[0];
plugin.deleteEl(elId);
});
質問:それは、このコードを最適化することが可能ですので、私は2人のクリックイベントリスナーを持っていないのですか?
$('.container').on('click', function(e){
var control = e.currentTarget;
if (control == '.edit-el') {
plugin.editEl(elId);
}
if (control == '.delete-el') {
plugin.deleteEl(elId);
}
});
私は、分離分離の原則のために、複数の別々のイベントハンドラを使用します。 'e.currentTarget'の代わりに' this'を使うのは簡単です – Satpal