2009-10-23 25 views
0

這是一個重複使用後的詳細信息...jQuery的單擊事件拼圖

我創建了一堆的標籤動態,追加到一個我再添加一個單擊處理...

$(document).ready(function(){ 
    // ... code to append <a> tags to nav div   
    $("#nav a").click(function(event){ 
     alert('Clicked '+event.target.id); 
     return false; 
    }); 
}); 

如果我有10個標籤,點擊第一個標籤,我會得到10(TEN!)提醒 - 但它們都顯示我實際點擊的標籤的ID。

(如果我點擊了第五標籤,是的,我得到5個警報 - 所有與第五標籤的ID ...)

這是怎麼回事嗎?是因爲我動態創建了標籤嗎?有沒有辦法避免它?

下面是創建一個標籤

$(document).ready(function(){ 
    $.get('_7day-M2.5.xml', {}, function(xml){ 
    $(xml).find('entry').each(function(i){ 
     $('#nav').append('<a href="#" id="'+i+'">'+$(this).find("title").text()+"</a><br/>"); 
    }); 
    }); 
}); 

Firebug的輸出顯示沒有什麼奇怪的看着代碼。

任何想法這裏發生了什麼?

感謝

+0

你可以發佈導航div的代碼。我的意思是,右鍵單擊並顯示源文件。所以我可以看到鏈接代碼。請 – 2009-10-23 16:42:37

回答

2

嘗試使用$( 「#NAV> A」)爲您的選擇,而不是$( 「#導航一」)。如果這不起作用,那麼只要確保你在可能有的任何循環之外綁定了click事件。例如,如果您在創建定位標記時所用的$ .each()內部具有單擊事件綁定,則它將創建多個點擊事件。

+0

「,那麼只要確保你綁定的任何循環,你可能會有」點擊事件「... 這就是它!我正在做你剛纔所說的 - 綁定在$ .each()中。 非常感謝 – Paul 2009-10-23 17:30:46