2

href を含む div があります。div には jQuery ライブ クリック イベントがあります。

$(".item").live("click", function() { 
    window.location = this.id;  
});

div には、href があります。

<div class="item" id="/test.html">
    <a href="javascript:void(0);" class="test" id="123">link</a>
</div>

また、ライブ クリック イベントの場合:

$(".test").live("click", function() { 
    $(".item").unbind('click');
    alert(this.id);
});

私が達成しようとしているのは、divをクリックするとdiv idが場所としてロードされ、div内のリンクをクリックすると、divのクリック動作が防止されます。

div から href を取り出すことができることはわかっていますが、それはしたくありません ;-)

4

1 に答える 1

4

UPDATED

If you can, use jQuery 1.7 to do the event delegation using .on and stop the anchor clicks from propagating:

$(document).on("click","a.test", function(e) { 
    e.stopImmediatePropagation();
});

$(document).on("click","div.item", function(e) { 
    // whatever
});

http://jsfiddle.net/AuHjA/3/

Otherwise use .delegate instead of .live:

$(document).delegate("a.test", "click", function(e) { 
    e.stopPropagation();
});

$(document).delegate("div.item", "click", function(e) { 
    //whatever
});

http://jsfiddle.net/mblase75/AuHjA/4/

于 2011-11-14T14:26:32.073 に答える