【问题标题】:javascript does not detect the click on the link [duplicate]javascript没有检测到点击链接[重复]
【发布时间】:2015-02-02 13:49:33
【问题描述】:

我正在插入链接元素并希望分享点击次数,但我没有得到.. 测试代码:

<html>
<title></title>
<head>

    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script type="text/javascript">

        $(document).ready(function(){
            $("#teste").click(function(){
               $("body").append($("<a>").text("Element A"));
            });

            $("a").click(function(){
               alert("oi");
            });
        });

    </script>

</head>
<body>
    <input type="button" value="INSERT A" id="teste" />
</body>
</html>

【问题讨论】:

  • 您正在将点击事件绑定到 ID=teste 的元素,但您似乎没有这样的元素
  • @VladZ。 &lt;input type="button" value="INSERT A" id="teste" /&gt;?
  • @SimplyCraig:他编辑了帖子;最初他有 id="INSERT A"
  • @VladZ。啊啊,我一头雾水。哈哈

标签: javascript jquery html dom hyperlink


【解决方案1】:

当您附加活动时,该链接不在页面上。这就像在制作披萨之前尝试吃披萨。您要么需要在单击它时附加事件,要么需要使用事件委托。

$(document).on("click", "a", function(){
    alert("oi");
});

【讨论】:

  • thanks =)... 纯javascript怎么做呢?
  • document.getElementsByTagName('a').addEventListener('click',function(){alert('oi');});
  • @Billy 100% 完全错误。
  • 是的,没问题。尽管var a_s=document.getElementsByTagName('a'); for(var i=0;i&lt;a_s.length;i++){ a_s[i].addEventListener('click',function(){ alert('oi');});} jsfiddle 确实如此
  • 恭喜您添加了事件,但在 OPs 情况下仍然无法正常工作。
【解决方案2】:

您试图在创建元素之前注册一个处理程序,您必须使用委托,即在已经存在的祖先节点上注册事件,并对其进行过滤。

jQuery 有一个简单的方法来做到这一点。

$(document).on('click', 'a', function(){
   alert("oi");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 2012-09-24
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多