1

このスレッドで見つけたランダムなdivに関するコードを使用して、ページの読み込み時にランダムに表示される3つのFacebookのようなボタンのセットを作成しました。

問題は、jFiddleでは正常に動作しますが、本番環境に移行するたびに完全に失敗することです。

Nick Craverからこのコードを借りて、いくつかの非常に基本的な変更を加えました。基本的には、クラス名を「Image」から「facebookLike」に変更するだけです。

HTML:

<div class="facebookLike">
    <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2Fcsuvolleyball&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=150920871613500" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>
</div>
<div class="facebookLike">
    <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2Fcsurams&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=150920871613500" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>
</div>
<div class="facebookLike">
    <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2FCoachJimMcElwain&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=150920871613500" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>
</div>​

jQueryコード:

var divs = $("div.facebookLike").get().sort(function() {
    return Math.round(Math.random()) - 0.5; //random so we get the right +/- combo
}).slice(0, 1)
$(divs).appendTo(divs[0].parentNode).show();​

このページへのリンクは次のとおりです。http ://www.csurams.com/test/facebook.htmlご覧のとおり、何も起きていません。

問題がdisplay:noneに関連しているかどうかわかりません。スタイルルールか何か。ただし、display:none;を削除すると、3つのdivすべてが表示されます...

助けていただければ幸いです。しばらくの間、机に頭をぶつけてきました:-)

4

2 に答える 2

0

要素が 3 つしかないため、並べ替えはあまり効果がありません。次のようにしてみてください。

var rand = $(".facebookLike").length-1 //need to -1 because :eq is zero indexed
$(".facebookLike:eq("+rand+")").show()
于 2012-11-05T21:48:10.390 に答える
0

まず第一に、jQuery 1.3 を使用するべきではありません。現在は 1.8.2 ですか?

次に、コードをラップしませんでした:

<script type="text/javascript">
    $(function() {
        var divs = $("div.Image").get().sort(function(){ 
            return Math.round(Math.random())-0.5;
        }).slice(0,1);
        $(divs).appendTo(divs[0].parentNode).show();​
    });
</script>

また、最後に奇妙な文字があることに注意してください。それらはコードにも含まれているため、削除する必要があります.jsFiddleから何かをコピーすると、そのようになることがあります。 .

于 2012-11-05T21:55:12.453 に答える