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

2024-05-06

我想为每个绑定一个点击事件<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。所以基本上你所做的是:

对于每个“特殊”段落:

  1. Execute alert
  2. Assign undefined到该段落的onClick.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

onClick 在 p 标签上无法正常工作 的相关文章

随机推荐