我有一个庞大的jQuery应用程序,并且我将以下两种方法用于点击事件。
第一种方法
<div id="myDiv">Some Content</div>
$('#myDiv').click(function(){ //Some code });
第二种方法
<div id="myDiv" onClick="divFunction()">Some Content</div>
function divFunction(){ //Some code }
我在应用程序中使用第一种或第二种方法。哪一个更好?性能更好?和标准?
使用$('#myDiv').click(function(){是 更好的 ,因为它遵循标准的事件注册模型。(jQuery 内部使用addEventListener和attachEvent)。
$('#myDiv').click(function(){
addEventListener
attachEvent
基本上,以现代方式注册事件是处理事件的简便方法。另外,要为目标注册多个事件侦听器,您可以addEventListener()为同一目标调用。
addEventListener()
var myEl = document.getElementById('myelement'); myEl.addEventListener('click', function() { alert('Hello world'); }, false); myEl.addEventListener('click', function() { alert('Hello world again!!!'); }, false);
为什么要使用addEventListener? (来自MDN)
addEventListener是注册W3C DOM中指定的事件侦听器的方法。其优点如下:
其他方法,例如设置HTML属性,例如:
<button onclick="alert('Hello world!')">
或DOM元素属性,例如:
myEl.onclick = function(event){alert('Hello world');};
很老,很容易被覆盖。
__应避免使用 HTML属性, 因为它会使标记更大且可读性更差。内容/结构和行为的关注点没有很好地分开,因此很难发现错误。
与该问题 DOM元素性质 的方法是,只有一个事件处理程序可以绑定到每个事件的元件。