0

numbersdivにいくつかのコンテンツがあります。をクリックするnumbers-clickerと、数値の内容が123456789oldNumbers 変数に保存され、内容が に変更され、 divで987654321クラスopenedが切り替えられます。もう一度numbersクリックすると、元の oldNumbers を復元しようとしているので、代わりにdiv に oldNumbers が. oldNumbers がdivの最初のコンテンツのままであることを確認するにはどうすればよいでしょうか?numbers-clicker123456789numbers987654321numbers123456789

<div id="numbers-clicker">Clicker</div>
<div id="numbers">123456789</div>

$('#numbers-clicker').off('click').on('click',function(){
    $this = $(this);
    var oldNumbers = $('#numbers').html();

    if(!$this.is('.opened')){ 
        $('#numbers').html('987654321'); 
    } else { 
        $('#numbers').html(oldNumbers); 
    }
    $this.toggleClass('opened')
});

ここにフィドルがあります

4

3 に答える 3

6

oldNumbersコールバックの外で宣言する必要があります:

var oldNumbers = $('#numbers').html();
$('#numbers-clicker').off(...);

乾杯

于 2012-12-07T18:55:24.980 に答える
1

古い値をタグの属性として保存できます

 $('#numbers').attr('data-old-numbers', oldNumbers )

そしてそれを取得します

 $('#numbers').attr('data-old-numbers')
于 2012-12-07T18:58:25.650 に答える
0
$('#numbers-clicker').data('txt', $('#numbers').text()).on('click', function() {
    $('#numbers').html($(this).is('.opened') ? '987654321' : $(this).data('txt'));
    $(this).toggleClass('opened')
});
​

フィドル

于 2012-12-07T19:03:25.947 に答える