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であり、私はそれで問題がないが、最近、私はアクティブなイメージを維持するために別の機能を導入(要素がクリックされた場合に現れるすなわち1):
$('.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
を使用して要素画像をホバーとマウスアウトで同じにするようにします。それは動作しますが、私は別の要素をクリックすると、以前にクリックされた要素は、通常の1のように動作しない(すなわち、それはホバーとマウスアウトの代わりに、それは.regular-image
クラスのためにコード化されたような演技にimage2.png
属性を保持します)。私が間違ったことは?私はsolutioがばかばかしく簡単で簡単かもしれないように感じますが、私はそれを自分で見つけることはできません。どんな助けや考えも高く評価されます! お時間をいただきありがとうございました。
UPD
私のポストを要約すると、私は現時点では到達したいのは、他の画像がクリックされたときにimage.png
に戻すimage2.png
を変更すると、それはjavascriptのコードで.regular-image
を説明した(これを変更するように振る舞うようにすることです仲間の開発者でUPD 2
image2.png
にマウスが出ている間、ホバリングとimage.png
ながら)
ヘルプ私は」私は欲しい振る舞いをした。私はこれに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");
});
});
それは私が明示的に画像上に置いて、マウスのみときには動作しますが、私は戻ってimage.png
に、私は他の画像をクリックするたびにimage2.png
を変更する必要があります。
あなたの質問に答えを加えたり、タイトルに[解決済み]デバイスを追加したりしないでください。それぞれの質問の終わりには、自己回答できるボタンがあります。ありがとう! – halfer