Disons que j'ai 10 divs avec des ID uniques. Lorsque je clique sur un élément dans chaque élément, je souhaite afficher un div superposé et y insérer du contenu basé sur l'ID de la div originale.Quelle est la meilleure façon d'écrire la population de contenu?
Est-il préférable de faire:
$('#inventory > div').find('i.icon-plus').on('click', function(){
$('#add-item').slideDown(100);
if ($(this).parent('div').attr('id') == '#id1') {
// load unique template
// or
// create form content here
}
else if ($(this).parent('div').attr('id') == '#id2') {
// load other unique template
// or
// create other form content here
}
...
else if ($(this).parent('div').attr('id') == '#id10') {
// load other unique template
// or
// create other form content here
}
});
Ou:
$('#inventory > div#id1').find('i.icon-plus').on('click', function(){
$('#add-item').slideDown(100);
// load unique template
// or
// create form content here
});
$('#inventory > div#id2').find('i.icon-plus').on('click', function(){
$('#add-item').slideDown(100);
// load unique template
// or
// create form content here
});
...
$('#inventory > div#id10').find('i.icon-plus').on('click', function(){
$('#add-item').slideDown(100);
// load other unique template
// or
// create other form content here
});
? Fondamentalement, ce que je demande est: est-il préférable d'avoir un seul gestionnaire d'événements avec une tonne d'instructions if/else ou une tonne de gestionnaires d'événements sans instructions if/else, ou cela n'a-t-il même pas d'importance?
Je vous recommande personnellement à l'aide d'un gestionnaire d'événements, la mise en cache du 'this.parentNode.id' et en utilisant un' switch' base sur ce 'id'. Cependant, pouvez-vous définir «mieux» en contexte? Et, accessoirement: [JS Perf] (http://jsperf.com/). –
Cela semble être un bon sujet pour un test [JSPerf] (http://jsperf.com/). –
Merci! Je ne savais pas à propos de ce petit outil soigné. – tenub