2011-04-27 48 views
0
<input type="button" class="pop_up" value="pop_up" /> 
<input type="button" class="go_back" value="go_back" /> 

<div id="contents"></div> 

<script> 

$(".pop_up").live("click", function (e) { 
    var seq = $(this).val() 
    alert(seq); 
}); // #1 

$(".go_back").live("click", function (e) { 
    $("#contents").load("test.php"); 
}); // #2 

</script> 

現在,jquery-live或stopPropagation?

根據點擊#2倍,彈出#1 Alert窗口。

任何人都可以讓我知道如何停止的#2事件冒泡

預先感謝您

回答

0

如果#1事件被觸發,您可以嘗試使用指示符,並且只有在未觸發#1事件時才處理#2功能。

$(".pop_up").live("click",function(e) 
{ 
    $(this).data('pop_up_click', true); // set 'pop_up_click' property to the element 
    // #1 var seq=$(this).val() alert(seq); 
}); 
$(".go_back").live("click", function(e) 
{ 
    if(!$(this).data('pop_up_click')) // execute something only if there is no 'pop_up_click' property 
     // #2 $("#contents").load("test.php"); 
}); 
+0

非常感謝! – SoonYeoung 2011-04-27 10:03:51

-1

在參考接受的答案here,這MAY工作。

$(".go_back").live("click", function(e) { // #2 
    $("#contents").load("test.php"); 
    e.stopImmediatePropagation() 
}); 

真正的解決方案,如果可能的話,將是使用.bind(),前提是你不需要的.live()直接的好處。

+0

您無法停止直播活動的傳播。他們已經泡到頂端。 – ThiefMaster 2011-04-27 09:13:25

+0

謝謝,但我仍然有同樣的問題。 – SoonYeoung 2011-04-27 09:17:06

+0

對不起,我已經更新了我的答案。這可能會或可能不會有幫助,所以我很抱歉! – 2011-04-27 09:24:01