1

私は3つの「スパン」を持っています

<span class="input1" style="display:block;"><span class="round"></span></span>
<span class="input2" style="display:none;"><span class="round"></span></span>
<span class="input3" style="display:none;"><span class="round"></span></span>

そして、これはスクリプトです:

$(document).ready(function() {
    act = 1;
    next = act+1;
    });

$(".round").click(function (){
         $('.input'+act).hide();
         $('.input'+next).show();
         act = next;
    });

初めて「.round」を押す->「.input1」-非表示&「。input2」-表示「.round」を2回押したい場合->何も起こらなかった。(これが問題です)

「.input2」を非表示にして「.input3」を表示するにはどうすればよいですか?助けてくれてありがとう、そして私の英語をごめんなさい!

4

3 に答える 3

2

私はおそらく特定のクラス名でそれをやろうとはしないでしょう...DOM構造を使用してください。

$(".round").click(function (){
   $(this).parent().hide().next().show();
});

JSFiddle: http: //jsfiddle.net/U7cYN/

于 2012-07-24T23:29:29.927 に答える
1

解決

nextは常に2に等しいからです。

2回目act == 2next == 2ので、非表示にしてから同じ要素を表示します。

それを試してください:

$('.round').click(function (){
    $('.input' + act).hide();
    $('.input' + next).show();
    act = next++;
});

少し説明

MDNによると:

++インクリメント演算子です。

この演算子は、オペランドをインクリメント(1を加算)して値を返します。オペランドの後に演算子(たとえば、x ++)を付けて接尾辞を使用すると、インクリメントする前に値を返します。オペランドの前に演算子を含むプレフィックス(たとえば、++ x)を使用すると、インクリメント後に値が返されます。

于 2012-07-24T23:29:07.823 に答える
0

これは機能します。3回クリックするとテキストが表示されなくなります。

$(document).ready(function() {
    act = 1;
    next = act;
});

$(".round").click(function (){
     next++;
     $('.input'+act).hide();
     $('.input'+next).show();
     act = next;
});
于 2012-07-24T23:40:52.270 に答える