2012-02-24 91 views
5

我在<td>中有鏈接,但是我也對所有<td> s有點擊事件。代碼如下所示:JQuery單擊事件中的跟蹤鏈接

$(document).ready(function() { 
    $('td.event').click(function() { 
     var eventName = prompt('Enter event:'); 
     if (eventName != null && eventName.length > 0) { 
      window.location = '?event=' + eventName; 
     } 
    }); 
}); 

我想簡單地跟隨鏈接,而不顯示彈出如果用戶點擊該鏈接,但如果用戶點擊其他任何地方<td>顯示彈出。這在JQuery中可能嗎?

+0

你試過定義上的所有'了'通過JQuery元素'click'事件? – 2012-02-24 22:06:42

回答

3

添加到您的document.ready處理程序結束:

$('td.event a').click(function(e) { 
    e.stopPropagation(); 
}); 
+0

該腳本似乎沒有與此代碼有任何不同之處。事件是從最內層的元素傳播還是從最外層的傳播? – 2012-02-24 22:22:39

+0

它應該工作。你把它放在'document.ready'處理程序中嗎?它應該在該處理程序內。請參閱[jsfiddle]上的演示(http://jsfiddle.net/32hXu/1/)。 – bfavaretto 2012-02-24 22:58:29

+0

對不起,它工作,我剛剛發現,我拼寫'stopPropagation()'爲'stopPropogation()'導致腳本失敗默默。感謝您的時間和耐心。 – 2012-02-24 23:30:34

0

它可能是有幫助的。

$("td.event a").click(function(e){ 
    e.stopPropagation(); 
}); 
3
function yourFunction() 
{ 
    var eventName = prompt('Enter event:'); 

    if(eventName != null && eventName.length > 0) { 
     window.location = '?event='+eventName; 
    } 
} 

$('td').click(function() { 
    yourFunction(); 
}); 

$('td a').click(function() { 
    window.location = $(this).attr('href'); 
}); 

應該做的伎倆。

+0

點擊該鏈接後會出現鏈接,但提示仍然出現。點擊鏈接時是否有某種方法可以抑制提示? – 2012-02-24 22:20:05

0

這應該這樣做。

<!DOCTYPE html> 
<html> 
<head> 
    <script src="jquery.js"></script> 
    <script> 
     $(document).ready(function() { 
      $("td").click(function(event){ 
       if(!event.isPropagationStopped()) { 
        var eventName = prompt("Enter event: "); 
        if(eventName != null && eventName.length > 0) { 
         window.location = "?event=" + eventName; 
        } 
       } 
      }); 
      $("a").click(function(event){ 
       event.stopPropagation(); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <table> 
     <tr> 
      <td style="background-color: grey; width: 100px; height: 20px;"> 
       <a href="http://www.google.be">google</a> 
      </td> 
     </tr> 
    </table> 
</body>