-1

リンクがクリックされたときにいくつかのdivを表示/非表示にするためにこれに取り組んできました:

私のフィドル

しかし今、私はそれを取得して、ページがロードされたときにそれらのdivのランダムな1つを表示するようにしようとしています。

私はこれを追加してみました:

var $reviews = $(.hider ').hide();
$reviews.eq(Math.random()*$reviews.length).show();​

しかし、それは私が以前に取り組んだことを壊しているようです。助言がありますか?

4

2 に答える 2

1

コードとデモは次のとおりです。

<div id="brother-gallery" class="hider">Brother Content</div>
<div id="mitsu-gallery" class="hidden hider">Mitsu Content</div>
<div id="taki-gallery" class="hidden hider">Taki Content</div>

<br /><br />
<div id="brother-tag" class="hider">Brother Tagline</div>
<div id="mitsu-tag" class="hidden hider">Mitsu Tagline</div>
<div id="taki-tag" class="hidden hider">Taki Tagline</div>

<br /><br />
<p><a href="#" class="control" data-field="brother">Brother Link</a></p>
<p><a href="#" class="control" data-field="mitsu">Mitsu Link</a></p>
<p><a href="#" class="control" data-field="taki">Taki Link</a></p>
<p><a href="#" class="random">Random</a></p>

​

$('.control').on('click', function(e) {
    e.preventDefault();
    var field = $(this).data('field');
    $('.hider:visible').fadeOut("slow", function() {
        $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow");
    });
});

$('.random').on('click',function(e){
    var randomIndex = Math.floor((Math.random()*100)+1)%3;
    console.log(randomIndex);
    var field = $($('a').get(randomIndex)).data('field');
    $('.hider:visible').fadeOut("slow", function() {
        $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow");
    });
});​
于 2012-07-16T19:34:53.830 に答える
0

試す:

var reviews = $('.hider');
reviews.hide();
var index = Math.floor(Math.random * reviews.length);
reviews.eq(index).show();

整数値がeq()呼び出しに渡されることを保証する必要があります。

于 2012-07-16T19:37:09.820 に答える