2009-08-04 134 views
1

我想更改圖像,當用戶點擊一個拇指圖像,並阻止它跳轉到頁面頂部。jquery防止默認不起作用

第一代碼,我寫道:

$('#photos-list img').click(function(e) { 
    e.preventDefault(); 

    var imgObj = new Image(); 
    var targetObj = $('#main_image img'); 
    imgObj.onload = function() { 
     targetObj.attr('src',this.src); 

    } 
    imgObj.src = $(this).attr('rel'); 
}); 

的preventDefault()方法工作正常。好吧,我想一些效果添加到圖像變化,如淡入,我加入

$('#photos-list img').click(function(e) { 
    e.preventDefault(); 

    var imgObj = new Image(); 
    var targetObj = $('#main_image img'); 
    imgObj.onload = function() { 
     targetObj.hide(); 
     targetObj.attr('src',this.src); 
     targetObj.fadeIn('normal'); 

    } 
    imgObj.src = $(this).attr('rel'); 
}); 

這個時候一些jQuery效果時,的preventDefault不工作,即使我給淡入()像的preventDefault:

targetObj.fadeIn('normal', function(e1){e1.preventDefault();}); 

任何方法來解決這個問題?

+0

你說的意思是什麼 「不工作」 ? – cletus 2009-08-04 23:54:22

+0

我認爲它跳回 – redsquare 2009-08-04 23:58:26

回答

2

您必須爲preventDefault發生錯誤纔會失敗(儘管js看起來很乍看)。你有螢火蟲嗎?這是確切的來源嗎?

4

試圖結束函數

return false; 
0

您需要啓用即支持。

嘗試以下操作:

$('#photos-list img').click(function(event) { 
var ev = event || window.event; 
ev.preventDefault(); 
// ... the rest of your code 
0

jQuery的淡入功能的回調並沒有收到事件參數。

我asume你有以下結構:

<div id="#photos-list> 
    <a href="#"><img src="..." /></a> 
</div> 

那麼試試這個:

$('#photos-list a').click(function(e) { 
    e.preventDefault(); 
}); 
0

它的工作:

if(event.preventDefault){ 
    event.preventDefault(); 
}else{ 
    event.returnValue = false; 
};