2011-11-05 62 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保存附加事件。