2012-03-16 63 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"); 
}); 

不,应该作用的结果太多:)