两个事件触发,我怎么能忽略禁用/解除对另一个

时间:2012-10-09 19:59:16

标签: jquery jquery-selectors

我有这个sudo html

<ul>
<li id="434" class="home-page-item" >
<div id="x_434" class="home-page-item-foot remove-tile"></div>
<div class="home-page-item-div">
    </li>
 </ul>

然后我有这些onclicks

$( '.remove-tile').live("click", function(event){
      event.preventDefault();
      removeTile();
});  

$( ".home-page-item" ).live("click", function(event){
      console.log("Here as well");
      do_some_otherstuff():
});  

我遇到的问题是,如果此人点击了删除片段div,则.home-page-item onclick也会被触发。有没有办法防止第二个主页项目被解雇? 我想也许是解开,但不知道如何使用它

由于

3 个答案:

答案 0 :(得分:1)

$( '.remove-tile').live("click", function(event){
      event.stopImmediatePropagation();
      removeTile();
});  

$( ".home-page-item" ).live("click", function(event){
      console.log("Here as well");
      do_some_otherstuff():
});

答案 1 :(得分:0)

在函数中添加return false;这是因为事件传播而发生的。在jQuery中,您可以使用return false来防止deafult(preventDefault)和事件传播。

$( '.remove-tile').live("click", function(event){
      removeTile();
      return false;
});  

$( ".home-page-item" ).live("click", function(event){
      console.log("Here as well");
      do_some_otherstuff():
      return false;
}); 

答案 2 :(得分:0)

这是因为事件冒泡.. 将event.stopPropagation();添加到您的点击事件

$('.remove-tile').live("click", function(event) {
    event.stopPropagation();
    removeTile();
});