繼上面我的評論,這裏是一個自動訪問我所說的this
關鍵字的例子。點擊任何按鈕將導致該特定按鈕上的文本被警告。
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
function allByTag(tagName,parent){return (parent == undefined ? document : parent).getElementsByTagName(tagName);}
function forEachNode(nodeList, func){for (var i=0, n=nodeList.length; i<n; i++) func(nodeList[i], i, nodeList); }
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded()
{
forEachNode(allByTag('button'), function(curNode, curIndex, nodeList){ curNode.addEventListener('click', onBtnClick, false); });
}
/*
// expanded version of the above function
//
function onDocLoaded()
{
var btns = allByTag('button');
forEachNode(btns, attachBtnHandler);
function attachBtnHandler(curNode, curIndex, nodeList)
{
curNode.addEventListener('click', onBtnClick, false);
}
}
*/
function onBtnClick(evt)
{
alert(this.textContent);
}
</script>
<style>
</style>
</head>
<body>
<button>This is btn1</button>
<button>This is btn2</button>
<button>This is btn3</button>
</body>
</html>
你是否正在瞄準點擊的div? – Shomz
看到的東西是 - 當你用'element.addEventListener'(而不是element.onclick =)附加一個事件監聽器時,該函數可以自動訪問'this'關鍵字,因爲函數現在是'的一部分'元素。因此,'this'是指具有附加事件的對象 - 您不需要明確地傳遞它。 – enhzflep
啊好的。謝謝! – user3772307