2014-03-07 38 views
1

哪種方法在所有瀏覽器中都更快,更受支持?

1.編寫像javascript函數:jQuery委託或函數方法?

function change_text(newtext) { 

    $('div#id').text(newtext); 

} 

,並將它附加到元素的onclick事件:

<button onclick="change_text('This is a new text');">Click Me</button> 


~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ OR ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~

2.使用委派方法,如:

$(document).on('click','button',function(){ 
newtext = $(this).attr('data-newtext'); 
$('div#id').text(newtext); 
}); 

,並指定一個自定義屬性:

<button data-newtext="This is a new text">Click Me</button> 
+1

我總是跟着,因爲動態添加的DOM元素仍然會聽取事件。我也發現它更清晰 –

+0

您必須爲每個元素分配內聯事件處理程序。其他人也可以對所有元素 –

+0

Me進行操作,但代理(on)方法是否比函數方法更快? – user3382146

回答

1

最好去與on使其更加脫鉤:

<button id="theButton">Click Me</button> 

function changeText(id, newtext){ 
    $(id).text(newtext); 
} 
function theButtonClick(){ 
    changeText('div#id','This is the new text'); 
} 

$(function(){ 
    $('#theButton').on('click', theButtonClick); 
}); 

利用jQuery的功能是好的,因爲你讓它處理跨瀏覽器兼容性。