1

jqueryを使用してトグルするときにreplaceコマンドを使用して画像を変更しようとしています..基本的に、コンテンツが表示された後に上向きの矢印になる下向きの矢印を示しています。この次のコードは、下向き矢印が置き換えられないことを除いて機能します。

<img src="/images/arrow_down.png" id="#1" class="nav-toggle">
<div id="1" style="display:none">some content</div>

ここにjqueryコードがあります

jQuery('document').ready(function($) {
    jQuery('.nav-toggle').click(function() {
        var collapse_content_selector = $(this).attr('id');
        var toggle_switch = $(this);
        $(collapse_content_selector).toggle(function() {
            if ($(this).css('display') == 'none') {

            } else {
                toggle_switch.attr("src").replace("down", "up");
            }
        });
    });
});​
4

6 に答える 6

2

コードは少ないほど良いです。

HTML

<a href="#" id="#arrow-toggle">
    <img src="/images/arrow_down.png">
    <img src="/images/arrow_up.png" class="up" style="display: none;">
</a>
<div id="content" style="display:none">some content</div>

jQuery

(function($) { 

    $('#arrow-toggle').click(function(event) {
        event.preventDefault();
        $('img:visible', this).hide().siblings().show();
        $('#content').toggle($('img:visible').is('.up'));
    });

})(jQuery);
于 2012-09-10T16:36:04.293 に答える
2

あなたはそれをsrcに割り当てていません。試してください:

toggle_switch.attr("src", toggle_switch.attr("src").replace("down", "up"));
于 2012-09-10T16:30:30.310 に答える
2

次のようなものを使用する必要があります。

jQuery('.nav-toggle').click(function() {
        var collapse_content_selector = $(this).attr('id');
        var toggle_switch = $(this);
        $(collapse_content_selector).toggle(function() {
            if ($(this).css('display') == 'none') {
                toggle_switch.attr("src", toggle_switch.attr("src").replace("image_2.jpg", "image_1.jpg"));
            } else {
                toggle_switch.attr("src", toggle_switch.attr("src").replace("image_1.jpg", "image_2.jpg"));
            }
        });
    });

これがライブデモです。

于 2012-09-10T16:49:05.770 に答える
0

HTML

<img src="/images/arrow_down.png" id="#1" class="nav-toggle">
<div id="1" style="display:none">some content</div>

jQuery

$(function(){
  $('.nav-toggle').on('click', function(){
    var t = $(this);
    var imgSrc = t.attr('src');
    var divId = t.attr('id');
    $(divId).toggle('slow', function() {
      if (imgSrc === '/images/arrow_down.png') {
        t.attr({'src' : '/images/arrow_up.png'});
      } else {
        t.attr({'src' :'/images/arrow_down.png'});
      }
     });
  });
});

これを試してください

于 2013-05-24T10:01:20.780 に答える
0

jQuery.UI.toggleSwitch()を試してみるべきだと思います

于 2012-09-10T16:33:25.053 に答える