0

我有这个js代码:

(function($, undefined) {
    $("a").click(function(event) { //or another elemtnt
        alert('Hello!');
    })
})(jQuery);

当然还有链接:

<a href="http://google.ru/" target="_blank">Google</a>

JS代码不起作用,但是如果我将其更改为:

(function($, undefined) {
    $("*").click(function(event) {
        alert('Hello!');
    })
})(jQuery);

一切正常!

4

3 回答 3

3

如果您在a加载节点之前放置了 JavaScript,则效果将与您描述的一样。试试这个:

$(function () {
    $("a").click(function(event) { //or another elemtnt
        alert('Hello!');
    })
});

这将在 DOM 树准备好时调用匿名函数。这是JSFiddle中的一个示例。

当您使用*作为选择器时,jQuery 会向html元素添加点击处理程序,这就是您收到警报的原因。

于 2013-02-18T12:07:26.667 回答
0

为什么不尝试使用 document.ready?

$(document).ready( function (){
    $('a').click(function (){
        alert("a");
    });
});
于 2013-02-18T12:09:36.560 回答
-1

这是一个可能的解决方案:

$(document).ready(function() {
    // put all your jQuery goodness in here.
});

你为什么不给它一个ID并选择$('#my-id')设置事件?

于 2013-02-18T12:09:23.727 回答