2011-11-05 74 views
1

我有一种情况,我需要使用jquery更改图像的src。我知道div的ID,我知道文件名的格式(我需要将_over更改为_main),但图像的src是唯一的唯一标识符。使用.html()中断.click()和.hover()事件

我的解决方案是使用.html()和.replace来更改图像,这工作。但是,它具有打破与图像相关的任何.hover()和.click()事件的不受欢迎的副作用。有没有办法恢复这些事件或更好的方式来改变IMG SRC,不打破它们(铭记我只能通过src识别图像)?

回答

3

看到$.live

它打破了,因为你要替换的元素,因此,他们正在失去他们的点击处理程序。如果您使用.live而不是.bind(或其简写形式,如.click),它也可以用于所有未来的元素。

+0

解决了它,谢谢。 – user1031348

2

而不是做

$('selector').click(function() {}) 

的做这样的

$('selector').live('click', function() {}) 

这将preserv的事件,即使对象被改变。

2

你应该只是改变src属性而不是使用html(),它本质上是取代整个img标签。

$("#divID img").attr("src", "new/image/path"); 

如果没有,你应该使用live保存附加事件。