2

jquery初心者です。私は学ぶためにグーグルを使用していますが、確かに簡単な質問のためにこれを解決する方法が見つかりません.

ボタンでdivを連続して表示していますが、表示するdivがなくなったら表示ボタンを非表示にしたいと思います。

これはコードです:

$('#show').on('click', function() {
    if (index + 1 > max) {
        // Here, I suppose, I need to hide the button
    } else {
        if (index < max - 1) {
            index++;
            $('.container > div:eq(' + index + ')').show();
        }

そして、ここで例を見ることができます

http://jsfiddle.net/vcARq/

事前に感謝し、私の英語について申し訳ありません;)

4

5 に答える 5

1

基本的に、このような関数を完全に実行する際にこれを行う必要があります

var index = -1;
var max = $('.container > div').length;
$('#show').on('click', function() {
        if (index < max - 1) {
            index++;
            $('.container > div:eq(' + index + ')').show();
        }
}, function () {
$(this).hide();
});

それはあなたのために働くはずです

于 2013-01-20T11:12:03.187 に答える
0

あなたの条件の場合(最大クリック回数)、.hide()を呼び出すだけです。ここで私の簡単な提案:

var index = -1;
var max = $('.container > div').length;
$('#show').on('click', function() {
    if (--max<=0) {          //condition
        $('#show').hide();   //hide button
    } 
    index++;
    $('.container > div:eq(' + index + ')').show();
});

http://jsfiddle.net/vcARq/8/

于 2013-01-20T11:18:06.800 に答える
0

あなたがjqueryを初めて使用する場合、私はあなたの仕事に本当に感謝しています.あなたのコードはあなたが望むものにほぼ近いです:

ここにJSFiddleがあります

そして、あなたはこのコードが必要です:

var index = 0;
var max = $('.container > div').length;
$('#show').on('click', function() {
        if (index < max ) {

       $('.container > div:eq(' + index+')').show();
                index++;
             if (index >= max ) 
                 $(this).hide();
        }   
});
于 2013-01-20T11:24:28.390 に答える
0

ボタンをクリックするたびに最後のdivが表示されているかどうかを確認することで、これを行うことができます。そのため、最後の div が表示されると、ボタンが非表示になります。コードは次のとおりです。

    var index = -1;
var max = $('.container > div').length;
$('#show').on('click', function() {
    if (index + 1 > max) {
        // Do Nothing
    } else {
        if (index < max - 1) {
            index++;
            $('.container > div:eq(' + index + ')').show();
        }


    }
    if ($('div.hidden:last').css('display') != 'none'){
     $('#show').hide()   ;
    }
});
于 2013-01-20T11:09:59.957 に答える
0

2インデックスを反復処理した後、 のコールバック関数内で値を引いた値を確認します.show()。これにより、期待どおりの動作が得られます。その理由-2は、オフセットを-1ではなく で開始したためです0

var index = -1
var max = $('.container > div').length;
$('#show').on('click', function () {
    var $this = $(this);
    if (index < max) {
        index++;
        $('.container > div:eq(' + index + ')').show(0, function () {
            if (index > max - 2) {
                $this.hide();
            }
        });
    }
});

フィドル。

于 2013-01-20T11:12:22.217 に答える