2

我正在使用一个大型代码库,并且我正在尝试编写一些 JQuery,以便每当用户单击链接(即a标签)时,都会发出警报。这是我写的:

$(document).ready(function() { 
    alert("hey ho!"); 
    $("a").click(function(event){ 
        alert("Hello!"); 
    }); 
});

“嘿嗬!” 警报出现了,所以 JQuery 正在工作。现在,这个文件中的链接实际上并不在 HTML 代码中,而是由其他一些 JavaScript 插入的。我可以将它们打印为 DOM 元素并在我的控制台上查看它们:

<a style="..." href="...">

它们是内部链接,当我单击它们时,它们会跳转到正确的位置。但是,没有警报。可能是什么问题?我怎么能调试这个?

4

3 回答 3

8

与委托一起使用以便新元素也可以接收事件:

$(document.body).on('click',"a",function(event){ 
    alert("Hello!"); 
}); 
于 2013-09-06T19:56:07.777 回答
0

本周我做了一个小提琴来演示它,回答一个问题

http://jsfiddle.net/KjJXf/2/

这演示了.on和的使用.off

通过执行.on,您的事件会在页面中“活动”,包括可以加载的新 HTML。

于 2013-09-06T20:00:48.220 回答
0

您可以在插入链接时绑定点击事件,将以下代码放在插入链接的代码后面。

$('a').unbind('click'); // to unbind from all previous a tags

/// bind to all again
$('a').on('click',function(){
    alert('hello');
});

如果您使用的是 1.9 之前的 jQuery 版本,那么您可以使用:

/// bind to all again
    $('a').live('click',function(){
        alert('hello');
    });
于 2013-09-06T20:02:19.563 回答