我在用jQuery改變圖像時遇到了麻煩。 我有以下的標記:用jQuery改變圖像點擊不起作用
<div class="row">
<img src="image.png" class="download-image regular-image" />
<div class="options">
<p>download</p>
</div>
<img src="image.png" class="download-image regular-image" />
<div class="options">
<p>download</p>
</div>
</div>
和下面的代碼來處理這些標記:
$('.regular-image').hover(function() {
$(this).attr('src', 'image2.png');
}. function() {
$(this).attr('src', 'image.png');
}
此代碼是非常straightfoward和我都沒有問題,但最近我介紹了另一個功能,以保持活動圖像(即,一個,顯示向上如果點擊元素):本塊後面
$('.download-image').click(function(e) {
e.stopPropagation();
$(this).next().toggle();
$('.download-image').removeClass('current');
$(this).addClass('current');
if ($('.download-image').hasClass('current')) {
$(this).hover(function() {
$(this).attr('src', 'image2.png');
}, function() {
$(this).attr('src', 'image2.png');
}
}
}
思想很簡單 - 我添加了一個current
類跟蹤當前正在活動的元素,然後使用代表活動狀態的image2.png
使其元素圖像在懸停和鼠標移出時保持不變。它可以工作,但是當我點擊另一個元素時,以前點擊過的元素不會像常規元素那樣工作(即,它保持懸停時的image2.png
屬性,而不是像.regular-image
類中的編碼那樣操作)。我做錯了什麼?我覺得solutio可能會很簡單直接,但我自己找不到。任何幫助或想法將不勝感激! 謝謝你獻給你時間,祝你有美好的一天。
UPD
要總結一下我的帖子,我想在那一刻達到是改變image2.png
回image.png
點擊其他圖像時,使其行爲類似於JavaScript代碼描述.regular-image
(去改變它到image2.png
而徘徊和image.png
而鼠標離開)
UPD 2
與其他開發者的幫助我米幾乎有我想要的行爲。我改變click
事件給這個:
$(".download-image").click(function (event) {
event.stopPropagation();
$(this).next().toggle();
$('.download-image').removeClass('current');
$(this).addClass("current");
$(document).delegate('.current','mouseover',function() {
$(this).attr("src", "/image2.png");
});
$(document).delegate('.current','mouseout',function() {
$(this).attr("src", "/image2.png");
});
});
它的工作原理,但只有當我明確地懸停和鼠標的影像上,但我每次都要更改image2.png
回image.png
當我點擊其他圖像。
請不要在此處添加答案到您的問題中,也不要將[解析]設備添加到標題 - 我們不這樣做。每個問題末尾都有一個按鈕,可讓您自行回答。謝謝! – halfer