2010-05-26 100 views
1

比方說,我們有這個標記:jQuery的忽略事件

<span href="">Text <a href="">Link</a></span> 

我們勢必兩個元素的事件。我如何做到這一點,當我點擊錨標籤時,父母上的事件不會被觸發?我試過使用Jquery方法stopPropagation(),但仍然沒有運氣。有什麼想法嗎?謝謝。

回答

2

你是如何使用stopPropagation()?像這樣的東西應該工作:

$("a.something").click(function(event){ 
    event.stopPropagation(); 
    window.location.href = '/your/destionation.html'; 
}); 
2

不知道爲什麼stopPropagation()不適合你。鑑於您的HTML示例,下面的代碼正常運行,因爲span上的事件未被觸發。

$('span').click(function() { 
    alert('span'); 
}); 

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

如果您使用live()綁定你的事件處理程序,那麼你就會有問題。

+0

我有一種感覺stopPropagation()不是e.stopPropagation()正在使用.. – 2010-05-26 02:55:04

+0

我試着用同樣的方式,也許我應該再試一次。順便說一句,有一個「e.preventDefault()」行,我不確定這是否與問題有關,是嗎?謝謝。 – HealthWarning 2010-05-26 02:57:45

+0

@HealthWarning - 你使用'live()來綁定事件嗎? 'e.preventDefault()'禁用元素的默認行爲。例如,如果您不想遵循'a'元素中的'href',則可以使用它來禁用'a'的行爲。 – user113716 2010-05-26 03:02:05