2011-04-27 47 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