首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有jquery的锚标记不起作用

带有jquery的锚标记不起作用
EN

Stack Overflow用户
提问于 2016-07-06 10:55:29
回答 2查看 1.8K关注 0票数 0

用动态生成的锚标记调用jquery不起作用。与硬编码锚标记一样,jquery运行良好。

代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">      </script>
    <script>
    $(document).ready(function(){

        var value = "HI!!!";
        $("button").click(function(){
            $("#box").html("<a class='dynamic' href='#' dataid='"+value +"'>Generate</a>");
        });
        $(".hardcode").click(function () {
            alert("Calling function");
        });
        $(".dynamic").click(function () {
            alert("ggsss function");
        });

    });
    </script>
</head>
<body>
    <a class="hardcode" href="#" dataid="sss">Generate</a>
    <button>Change content of all p elements</button>

    <div id="box">
    </div>
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-06 11:00:50

对动态生成的元素使用$(document).on("click")

代码语言:javascript
复制
var value = "HI!!!";
$("button").click(function(){
    $("#box").html("<a class='dynamic' href='#' dataid='"+value +"'>Generate</a>");
});
$(document).on("click",".hardcode",function () {
 alert("Calling function");
});
$(document).on("click",".dynamic",function () {
 alert("ggsss function");
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 <a class="hardcode" href="#" dataid="sss">Generate</a>
     <button>Change content of all p elements</button>

     <div id="box">
     </div>

票数 0
EN

Stack Overflow用户

发布于 2016-07-06 10:57:05

由于dynamic锚标记类是动态添加的,因此需要使用事件委托来注册事件处理程序,如下所示:

代码语言:javascript
复制
// New way (jQuery 1.7+) - .on(events, selector, handler)
$('#box').on('click', '.dynamic', function(event) {
    event.preventDefault();
    alert("ggsss function"); 
});

这将将事件附加到#box元素中的任何锚点,从而减少检查整个document元素树的范围,并提高效率。

Fiddle Demo

更多信息:

  • http://api.jquery.com/on/
  • http://learn.jquery.com/events/event-delegation/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38222311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档