我想为每个绑定一个点击事件<p>
但它似乎不能正常工作。
当我运行脚本时,我立即收到三个警报。我只想在单击三个中的任何一个时获得它们<p>'
s.
谁能告诉我我做错了什么?
编辑:抱歉,这就是它的样子。
HTML 应该是这样的:<p class="special">text text text</p>
etc
(function () {
var myFunction = function (theP) {
alert(theP.id)
}
window.onload = function () {
var pTags = document.getElementsByTagName('p'),
pLength = pTags.length,
i;
for (i = 0; i < pLength; i += 1) {
if(pTags[i].className == 'special'){
pTags[i].onClick = myFunction(pTags[i]);
}
};
}
})();
诗。我无法使用 jQuery atm
尝试更换
pTags[i].onClick = myFunction(pTags[i]);
with
pTags[i].onClick = function() { myFunction(pTags[i]); }
你看,当你分配给onClick
对象的,您将表达式的结果复制到它。你应该复制的是一个函数,当p
被点击。
相反,你是running命令myFunction(pTags[i])
,它执行alert()
s,并获取函数的结果。现在,由于该函数不返回任何内容,因此表达式的值myFunction(pTags[i])
未定义。
然后你获取这个值,并将其分配给onClick
。所以基本上你所做的是:
对于每个“特殊”段落:
- Execute
alert
- Assign
undefined
到该段落的onClick
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)