javascript
  • jquery
  • html
  • 2015-10-25 20 views 1 likes 
    1

    我的javascript:2次不同的类。点击

    $(".openPage").click(function() { 
         alert(1); 
        }); 
    
    $(".openButton").click(function() { 
         alert(2); 
        }); 
    

    我的HTML:

    <tr class='openPage'> 
    <td></td> 
    <td><button class='openButton'></button></td> 
    </tr> 
    

    当我在我的TD内点击链接第一个功能,而不是解雇具有警报(2)的功能。我怎样才能解决这个问题?

    回答

    1

    所有你需要的是event.stopPropagation()button item。这就是全部

    $(".openPage").click(function() { 
        alert(1); 
    }); 
    
    $(".openButton").click(function(evt) { 
        evt.stopPropagation(); // The click won't propagate to .openPage parent 
        alert(2); 
    }); 
    
    +0

    那么,他将问题描述为第一次点击在第二场比赛之前被解雇,这显然没有什么帮助,因为这是第一场火灾。 – momomo

    1

    那么,元素包含在第一个。

    但是你可以,如果你真的需要做的:

    $('.openPage').click(function(e, event) { 
         if ($(e).hasClass('openButton)) { 
          $(e).trigger('click'); 
         } 
    }); 
    

    或更好

    var page = $('.openPage'); 
    page.click(function(e, event) { 
         if ($(e) != page) { 
          $(e).trigger('click'); 
         } 
    }); 
    

    您也可以尝试:

    event.stopPropagation(); 
    
    +0

    什么? '(','event'){'...'e'不是元素对象,'event'不是任何*事件,但是没有定义,你完全弄错了。另外,你的代码中有一个拼写错误'') –

    +0

    @ RokoC.Buljan它是自由式的,显然它是$(this)for e,第一个参数是一个事件 – momomo

    相关问题