0

これまでの私のjQuery:

jQuery(document).ready(function($) {

    $(".spoiler").hide();
    $(".spoiler-title").prepend('+ ');

    $('.spoiler-title').bind('click', function(){
        $(".spoiler-title").prepend('- ');
        $('.spoiler').animate({height: 'toggle'}, 100);

    });

});

クリックするたびに「-」が追加され、古い「+」プリペンドが削除されないため、明らかに間違っています。では、その新しい前置詞を削除して、元の「+」に戻すにはどうすればよいでしょうか?

ご協力いただきありがとうございます!

4

3 に答える 3

1

Pprepend を使用し続けることもできますが、そのスパンの内容は + または - になる$('.spoiler-title span').text('+ ');ため、.text('- ') で変更するよりも、次のようなものを使用できます。

このコードを検討し、必要に応じて変更してください。

(function($){ $(function(){
  $('.spoiler-title').click(function(){
    $(this).toggleClass('minus').next('.content').slideToggle();
    if($(this).hasClass('minus')){
      $(this).children().text('- ');
    } else { $(this).children().text('+ '); }
  });
}); })(jQuery);

私はあなたがそこに何を持っているのかわかりませんが、ここに実用的な fiddleがあるので、私がどのようにそれをしたかを見ることができます. それがあなたのために働くことを願っています! $(document).ready() を使用していないことにも注意してください。この変更によるコードへの影響はありませんが、同じように機能し、「コンフリクト フリー」であるため、代わりに使用を開始してください。「$」の競合を回避する方法は他にもありますが、これは私が個人的に使用する方法です。

于 2013-01-10T02:08:02.987 に答える
1

これを試して:

jQuery(document).ready(function($) {

    $(".spoiler").hide();
    $(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');

    $('.spoiler-title').bind('click', function(){
        if($(".prependedSign").hasClass("minus"))
        {
            $(".prependedSign").remove();
            $(".spoiler-title").prepend('<span class="prependedSign plus">+ </span>');
        }
        else
        {
            $(".prependedSign").remove();
            $(".spoiler-title").prepend('<span class="prependedSign minus">- </span>');
        }
        $('.spoiler').animate({height: 'toggle'}, 100);

    });

});
于 2013-01-10T02:05:08.937 に答える
0

これを試して

jQuery(document).ready(function($) {

        $(".spoiler-title").text('+ ');
        $(".spoiler").hide();

        $('.spoiler-title').bind('click', function(){

             if($(this).text().indexOf("- ") > -1)
             {
                   $(this).text('+ ');
                   $(".spoiler").hide();
             }
             else
             {
                  $(this).text('- ');
                  $(".spoiler").animate({height: 'toggle'}, 100);              
             }

        });

    });
于 2013-01-10T03:35:11.450 に答える