我遇到需要使用jquery更改图像的src的情况。我知道div的ID,我知道文件名的格式(我需要将_over更改为_main),但图像的src是唯一的唯一标识符。
我的解决方案是使用.html()和.replace来更改图像,这很有用。然而,它有破坏与图像相关的任何.hover()和.click()事件的不受欢迎的副作用。有没有办法恢复这些事件或更改img src的更好方法,不会破坏它们(记住我只能通过src识别图像)?
答案 0 :(得分:3)
请参阅$.live
它因为你正在替换元素而中断,因此他们失去了他们的点击处理程序。如果您使用.live
代替.bind
(或其短格式,例如.click
),它也适用于所有未来的元素。
答案 1 :(得分:2)
而不是做
$('selector').click(function() {})
这样做
$('selector').live('click', function() {})
即使对象被更改,这也将保留事件。
答案 2 :(得分:2)
你应该只是改变src属性,而不是使用基本上替换整个img标签的html()。
$("#divID img").attr("src", "new/image/path");
如果没有,您应该使用live来保留附加事件。