gpt4 book ai didi

javascript - onClick 在 p 标签上无法正常工作

转载 作者:行者123 更新时间:2023-12-03 23:53:29 25 4
gpt4 key购买 nike

我想为每个 <p> 绑定(bind)一个点击事件但它似乎无法正常工作。

当我运行脚本时,我立即收到三个警报。我只想在单击三个 <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]);


pTags[i].onClick = function() { myFunction(pTags[i]); }

你看,当你分配给 onClick对于一个对象,您正在将表达式的结果复制到它。您应该复制的是在 p 时调用的函数。被点击。

相反,你是 正在运行命令 myFunction(pTags[i]) ,执行 alert() s,并获取函数的结果。现在,由于函数不返回任何内容,表达式 myFunction(pTags[i]) 的值未定义。

你把那个值赋值给 onClick .所以基本上你所做的是:

对于每个“特殊”段落:
  • 执行alert
  • 分配 undefined到段落的onClick .
  • 关于javascript - onClick 在 p 标签上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1791515/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com