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!");
});

ライブは非推奨です

于 2013-01-08T15:01:59.617 に答える
1

div#result .result はクラスになります。また、ライブを使用しないようにして、代わりに .on() を使用してください。

于 2013-01-08T15:02:42.450 に答える