2011-12-11 68 views
1

我有一些鏈接中包含圖像的列表項。當點擊其中一個鏈接時,我想僅包含li的rel屬性,但不會遵循點擊事件。通過當前事件打開鏈接圖像在一個新的頁面,我不想要。防止點擊事件jquery

我試過return false;在我的功能,但這不起作用(見下文)。我也嘗試過這種方式,但我寧願不這樣做,因爲這不是最佳做法。

$('a.main-img').click(function(){ 

    var liRel = $(this).closest('li').attr('rel'); 
    var relNumber = $('#banner-holder').find('img').attr('id', liRel); 
    rotatePics(relNumber); 

    return false; 

}); 

回答

3

但請注意,preventDefault不會阻止事件從冒泡DOM並由其中一位父母進行操作和事件。功能event.StopPropagation將做到這一點。 PreventDefault停止鏈接的默認操作。實際上返回false都這樣做,因此使用preventDefault將不是一個確切的函數複製返回false。

這個SO question給出了一個全面的運行。

在這種情況下大概不會有什麼區別,但是當它真的讓我在過去困惑的時候

0

http://api.jquery.com/event.preventDefault/

閱讀,在這裏你有一個例子。

編輯:你糾正代碼將是這樣的:

$('a.main-img').click(function (event){ 
    event.preventDefault(); 
    var liRel = $(this).closest('li').attr('rel'); 
    var relNumber = $('#banner-holder').find('img').attr('id', liRel); 
    rotatePics(relNumber);  
}); 
0

嘗試:

 
$('a.main-img').click(function (evt){ 
    evt.preventDefault();