2011-02-26 20 views
0

我有以下代碼用於在水平滾動網站內的不同導航菜單上切換背景圖像。JQUERY - 在添加類時不響應事件調用

我甲肝的問題是,一旦我添加the.swap類的圖像動態地它不以點擊呼叫反應?任何想法感激地收到!

乾杯 保羅

$('img.swap').click(function() { 

var thisSrc = $('img.active').attr("src"); 
var alteredSrc = (thisSrc).slice(0, -7)+".png"; 
$('img.active').attr("src",alteredSrc); 
$('img.active').addClass("swap"); 
$('ul.navigation li img').removeClass("active"); 
var thisSrc = $(this).attr("src"); 
initImg = $(this).attr("src"); 
var imgType = (initImg).slice(-4); 
var greyImg = initImg.slice(0, -4) + "_up" + imgType; 
$(this).attr("src",greyImg); 
$(this).addClass("active"); 
$(this).removeClass("swap"); 
); 
+0

使用jQuery的活,你的代碼應該工作,將來的所有元件,其將被添加到DOM – kobe 2011-02-26 17:25:38

回答

0

您正在尋找的live()功能,附加一個事件處理函數到現在和將來與選擇器匹配的所有元素。

+0

多數民衆贊成 - 我的一半 - 但是..我的問題的另一半是,下面的懸停功能也需要活,我已經添加了實時代碼,但懸停效果不起作用? $( 'img.swap')。住( '懸停',函數(){ \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t initImg = $(本).attr(」 SRC「); \t \t \t \t VAR imgType =(initImg).slice(-4); \t \t \t \t \t \t \t \t var greyImg = initImg.slice(0,-4)+「_up」+ imgType; \t \t \t \t \t \t \t \t \t $(本).attr( 「src」 用戶,greyImg); \t \t \t \t \t \t \t},函數(){ \t \t \t $(本).attr( 「SRC」,initImg); \t \t \t \t \t}); – Dancer 2011-02-26 17:35:03

0

你必須使用jQuery的現場

http://api.jquery.com/live/

,因爲它們是動態添加

+0

歡呼聲,您可以使用實時與鼠標結合現場徘徊藏漢?似乎在鼠標懸停但沒有出現,如上面的代碼 – Dancer 2011-02-26 17:40:20

+0

@Paul,你可以使用最新的懸停功能http://api.jquery.com/hover/,它可以處理兩者。 – kobe 2011-02-26 18:02:41