我有一种情况,我需要使用jquery更改图像的src。我知道div的ID,我知道文件名的格式(我需要将_over更改为_main),但图像的src是唯一的唯一标识符。使用.html()中断.click()和.hover()事件
我的解决方案是使用.html()和.replace来更改图像,这工作。但是,它具有打破与图像相关的任何.hover()和.click()事件的不受欢迎的副作用。有没有办法恢复这些事件或更好的方式来改变IMG SRC,不打破它们(铭记我只能通过src识别图像)?
我有一种情况,我需要使用jquery更改图像的src。我知道div的ID,我知道文件名的格式(我需要将_over更改为_main),但图像的src是唯一的唯一标识符。使用.html()中断.click()和.hover()事件
我的解决方案是使用.html()和.replace来更改图像,这工作。但是,它具有打破与图像相关的任何.hover()和.click()事件的不受欢迎的副作用。有没有办法恢复这些事件或更好的方式来改变IMG SRC,不打破它们(铭记我只能通过src识别图像)?
看到$.live
它打破了,因为你要替换的元素,因此,他们正在失去他们的点击处理程序。如果您使用.live
而不是.bind
(或其简写形式,如.click
),它也可以用于所有未来的元素。
而不是做
$('selector').click(function() {})
的做这样的
$('selector').live('click', function() {})
这将preserv的事件,即使对象被改变。
你应该只是改变src属性而不是使用html(),它本质上是取代整个img标签。
$("#divID img").attr("src", "new/image/path");
如果没有,你应该使用live保存附加事件。
解决了它,谢谢。 – user1031348