2012-07-25 36 views
2

我有一個行HTML表被掛在下面的JavaScript函數中:如何禁用一個鏈接點擊也從調用一個JavaScript事件掛鉤到它的父容器?

<script type='text/javascript'> 
     $(window).load(function() { 
      $(".clickable").click(function() { 

       $(this).next().toggle(); 

      }); 
     }); 

此功能擴展正下方此行的一些內容。我在這一行也有一個鏈接,用於點擊另一個頁面。它看起來像這樣:

enter image description here

當我點擊鏈接它會很快展開導航到它應該去的網頁右邊前的內容。

我怎樣才能改變它,這樣,如果鏈接被點擊,它進入該頁面沒有調用一個可擴展的額外內容的JavaScript功能?

+0

的可能重複[點擊鏈接應該不會觸發父母的onclick事件]( http://stackoverflow.com/questions/5590944/click-on-link-should-not-trigger-parental-onclick-event)和[防止點擊從孩子射擊父點擊事件](http://stackoverflow.com/ (http://stackoverflow.com/q/1997084/218196)和[如何禁用父級單擊](http://stackoverflow.com中的q/6929198/218196)和[阻止父容器單擊事件從點擊超級鏈接時觸發]/q /218196分之1398582)。 – 2012-07-25 15:51:51

+0

對不起,這是一個騙局,我會刪除。 – 2012-07-25 15:59:36

+0

嗯,我想我不能刪除它,但要繼續前進。 – 2012-07-25 16:00:08

回答

5

上的鏈接,要停止傳播:

$('.myNavLink').click(function(e){ 
    e.stopPropagation(); 
}); 

文件鏈接:http://api.jquery.com/event.stopPropagation/

編輯當你遇到執行這一這裏是一個活生生的例子麻煩:

http://jsfiddle.net/Vs5B8/

你會看到它有一個表與1行,在一個鏈接在o細胞的NE:

<table> 
    <tr class="clickable"> 
     <td> one </td> 
     <td> two </td> 
     <td> <a href='http://www.google.co.uk' class="myNavLink"> click me </a> </td> 
    </tr> 
</table> 

我已經迷上了該行單擊事件:

$('.clickable').click(function(){ 
    alert("row click"); 
}); 

因此,行中的任意位置單擊會提醒row click,當您單擊超鏈接,即使這樣做。但是添加一個click事件到a停止傳播將停止這種行爲(即不顯示點擊鏈接時警報):

$('.myNavLink').click(function(e){ 
    e.stopPropagation(); 
}); 
+0

謝謝,它看起來像這是我想要的,雖然我似乎無法得到正確的語法與我目前的功能,對如何整合它的任何建議? – 2012-07-25 15:53:24

+0

沒關係,明白了! – 2012-07-25 15:59:07

+0

哈哈,就在我更新了我的帖子之後。 – Jamiec 2012-07-25 16:03:35

相關問題