0

我有这个 jQuery:

$("div.result").live("click", function(event){
alert("kokoko");
});

HTML 可以是:

<div id="result">
Flash banner code
Image with link 
etc.
</div>

我想要做的是在单击 div 持有者内的任何元素时触发警报。目前,当结果中有图像横幅时,不会触发警报。

4

4 回答 4

7

尝试:

$("#result").on("click", function(){
    alert("kokoko");
});

// or

$("#result").click(function(){
    alert("kokoko");
});

// or just pure JavaScript

document.getElementById("result").addEventListener("click",function(){
    alert("kokoko");
});

addEvent尽管使用像这样的纯 JavaScript(使用和removeEvent函数)解决跨浏览器问题是一个很好的做法:

(function(){
    if ( document.addEventListener ) {
        this.addEvent = function(elem, type, fn) {
            elem.addEventListener(type, fn, false);
            return fn;
        };

        this.removeEvent = function(elem, type, fn) {
            elem.removeEventListener(type, fn, false);
        };
    } else if ( document.attachEvent ) {
        this.addEvent = function(elem, type, fn) {
            var bound = function() {
                return fn.apply(elem, arguments);
            };
            elem.attachEvent("on" + type, bound);
            return bound;
        };

        this.removeEvent = function (elem, type, fn) {
            elem.detachEvent("on" + type, fn);
        };
    }
})();
于 2013-01-08T14:59:49.373 回答
5

切勿使用或推荐已弃用的.live() ...

$("#result").on("click", function(event){
alert("kokoko");
});
于 2013-01-08T15:01:41.857 回答
1

这应该这样做:

$("#result").on("click", function(){
    alert("it worked!");
});

不推荐使用 live

于 2013-01-08T15:01:59.617 回答
1

应该是 div#result .result 将是一个类。另外,尽量不要使用 live,而是使用 .on() 。

于 2013-01-08T15:02:42.450 回答