2016-07-01 1 views
0

私はドロップダウンメニューを持っていますが、ドロップダウンメニューが開いているか閉じているかによって、ドロップダウンメニューを表示するためのイメージが表示されます。しかし、ページの残りの部分がクリックされると、元のsrc(..images/image1.png)に戻ります。これはうまくいきますが、ページがクリックされた後にクリックされたときにイメージのsrcは切り替わりません。これをどうやって解決するのですか?ありがとうございました。.click(swap)は特定のsrcが指定されていると動作を停止しますか?

$(function() { 
 

 
    function swap() { 
 
    var mem = this.src; 
 
    this.src = $(this).data('src'); 
 
    $(this).data('src', mem); 
 
    } 
 
    $('.dropbtn').click(swap); 
 

 
}); 
 

 
window.onclick = function(event) { 
 
    if (!event.target.matches('.dropbtn')) { 
 

 
    var dropdowns = document.getElementsByClassName("dropdown-content"); 
 
    var i; 
 
    for (i = 0; i < dropdowns.length; i++) { 
 
     var openDropdown = dropdowns[i]; 
 
     if (openDropdown.classList.contains('show')) { 
 
     openDropdown.classList.remove('show'); 
 
     $(".dropdown-content").slideToggle(); 
 
     $(".dropbtn").attr('src', '../images/image1.png'); 
 
     } 
 
    } 
 
    } 
 
}
<div class="dropdown"> 
 
    <div id="infotoggler"> 
 
    <img onclick="myFunction()" src="../images/image1.png" data-src="../images/image2.png" class="dropbtn" /> 
 
    </div> 
 
    <div id="myDropdown" class="dropdown-content"> 
 
    <a href="http://www.coopertimewell.com">Home</a> 
 
    <a href="http://www.coopertimewell.com/portfolio">Portfolio</a> 
 
    <a href="http://www.coopertimewell.com/contact">Contact</a> 
 
    <a href="http://www.coopertimewell.com/downloads">Downloads</a> 
 
    </div> 
 
</div>

+0

? – Li357

+0

申し訳ありませんが、この問題ではmyFunction()は無関係ですが、今は取り除きます。 – CoopDaddio

答えて

1

スワップは、この方法はおそらくその後、srcとデータ-SRCを他のSRCを上書きして、それを設定し、そうするためのものでなければならない間は、こちらをクリックして上の画像srcを設定しています同じだろう。このため

$(".dropbtn").attr('src', '../images/image1.png'); 

解決策、再び交換することです: `MyFunctionを()`宣言され

$(".dropdown-content").slideToggle(); 
var t = $(".dropbtn"); 
var mem = t.attr('src'); 
t.attr('src',t.data('src')); 
t.data('src', mem); 
+0

こんにちは、私はこれを試したが、ページをクリックした後、ドロップダウンメニューが隠れてから再び表示されます。スニペットにドロップダウンメニューのコードを追加していないので、関連性があるとは思われませんでしたが、今すぐ追加します。 – CoopDaddio

+0

@CoopDaddio問題がなければ、変更されたコードを確認してください – MoustafaS

+0

こんにちは、申し訳ありませんが、まだ動作しません...ページがクリックされたときにイメージはもう何も変わりません。 – CoopDaddio

関連する問題