比方說,我有10個具有唯一ID的div。當我點擊每個元素時,我希望顯示一個覆蓋div,並在其中根據原始div的ID填充內容。哪一種寫作內容人羣的方法更好?
是更好地做:
$('#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
}
});
或者:
$('#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
});
?
基本上我問的是:只有一個事件處理程序有一大堆if/else語句或一大堆事件處理程序沒有if/else語句,還是它不甚重要?
我個人推薦使用一個事件處理程序,緩存'this.parentNode.id'和使用'之開關基於在那個'id'上。但是,您可以在上下文中定義「更好」嗎?順便說一下:[JS Perf](http://jsperf.com/)。 –
聽起來像是一個[JSPerf](http://jsperf.com/)測試的好主題。 –
謝謝!不知道那個整潔的小工具。 – tenub