2012-04-10 103 views
0

我有一個網頁照相館http://dev.dolina-imeniy.ru/fotogalereya/kp_usadba_tishnevo/ 我用這個綁定單擊事件,並返回沒有工作,那麼假返回false有時

$('a.link_photo').click(function(e) { 
var new_img = $(this).attr('href'); 
var photo_title = $(this).attr('title'); 
var photo_info = $('.photo_info', this).html(); 
$('#photo_view img').attr({ 
    src : new_img 
}); 
$('#photo_title').html(photo_title); 
$('#photo_info').html(photo_info); 
return false; 
    }); 

但在某些圖像就不行!爲什麼會出現?

嘗試點擊10圖像(ut-1-foto.jpg)在我的例子中看到它。

回答

2

原因是該函數僅綁定到調用時已存在的元素。文檔加載後創建的每個鏈接都不會綁定到該函數。要監聽這些元素的創建,然後將函數綁定到它們,可以使用jQuery插件liveQuery。我希望有所幫助。

+0

謝謝!這是工作!完美! – skywind 2012-04-11 00:21:59

3

由於某些原因,您的代碼被破壞,所以它不會返回false。

您可以使用e.preventDefault();停止默認動作

e.preventDefault(); 
+0

它也可能是在函數完成處理之前默認執行並返回false。 – Fresheyeball 2012-04-11 00:12:34

+0

試試,但沒有幫助( – skywind 2012-04-11 00:13:38

1

我不認爲return false;event.preventDefault()與它有任何關係。我猜它與你的旋轉木馬的工作方式有關。一旦圖像開始重複,代碼就會中斷並非巧合 - 單擊事件可能不再受限制。如果元素剛剛被移動,事件仍應該被設置,但如果它被克隆或複製,事件可能不會。

編輯:我可以通過調試確認您的腳本甚至沒有在'斷開'鏈接上調用。

+0

我怎樣才能永遠反彈這個活動? – skywind 2012-04-11 00:14:38