2012-03-16 62 views
0

我正在動態生成img標記。並對其執行點擊事件。爲此,我使用了jQuery live方法。它是在Mozilla Firefox和谷歌瀏覽器工作正常,但在IE.Here不工作是我的代碼,jQuery live方法不起作用

<div class="itemremove"><a href="action">remove</a></div> 

使用jQuery當頁面加載我替換刪除文本中包含「X」的一些圖像。

$(".itemremove a").text(""); // deleting text 
$(".itemremove a").append("<img class='removeImg' alt='Remove' 
src='remove_item.png'>"); // adding image in that place 

接下來,當點擊圖像事件不會觸發。

$(".removeImg").live("click", function(){ 
    alert("Item removed"); 
}); 

在IE中沒有提示框但是,在Firefox和鉻工作。任何人都可以告訴我這個解決方案嗎?

+2

在jQuery 1.7中,.live()方法已過時。使用.on()附加事件處理程序。 – NimChimpsky 2012-03-16 11:26:20

+1

甚至在jQuery 1.7之前,使用'delegate'(除非你真的在1.4.2之前退縮)。 – 2012-03-16 11:35:18

回答

0

我猜你缺少右括號:


$(".removeImg").live("click", function(){ 
    alert("Item removed"); 
} 
); //this one 

或嘗試:


$(".itemremove a").live("click", function(){ 
    alert("Item removed"); 
}); 
+0

對不起,我忘了在後附近括號,但我的代碼我正確關閉。 – nagesh 2012-03-16 11:31:37

0

我會放置到點擊一個:

$(".itemremove a").live(... 

但我會用一個背景放置圖像,並使用文本縮進:-10000作爲文本。這種方式是可以訪問的,你不必使用JavaScript,這是CSS的第二種選擇。

0

.live()從jQuery 1.7(http://api.jquery.com/live/#live-events-map)開始被棄用。它已經被替換。對():

$(".itemremove a").on("click", function(){ 
    alert("Item removed"); 
}); 

不,應該作用的結果太多:)