2

下のランダムフォームリンクをクリックしても、リストされているフォームのいずれかがランダムに読み込まれない理由について、誰かが洞察を提供できるかどうか疑問に思っていました。ここでjfiddleで動作します:

http://jsfiddle.net/tUMBp/1/

どんな助けでも大歓迎です。前もって感謝します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="http://code.jquery.com/jquery-1.7.2.js" type="text/javascript"></script><!-- This calls the jquery library -->

<script type="text/javascript">
$(document).ready(function() {
    $('#randomForm').click(function() {
        var forms = $('#forms > form');
        forms.hide();
        forms.eq(Math.floor(Math.random() * forms.length)).show();
    });
});
</script>

<title>Untitled Document</title>
</head>

<body>

<div id="forms">
    <form style="display:none;">
        This is your training site1
    </form>
    <form style="display:none;"><!-- the second form -->
        This is your training site2
    </form>
    <form style="display:none;"><!-- the second form -->
        This is your training site3
    </form>

    <form style="display:none;"><!-- the second form -->
       This is your training site4
    </form>


</div>



<a href="#" id="randomForm">Show random form</a>​



</body>
</html>
4

2 に答える 2

5

問題は、ページにフォームが存在する前に jquery コードが実行されることです。その時点で、クリック イベントを に割り当てることはできません#randomForm(jQuery は割り当てようとしますが、#randomFormまだ存在しないため何もしません)。

document.ready ハンドラーを使用します。

<script type="text/javascript">
$(document).ready(function(){
    $('#randomForm').click(function() {
        var forms = $('#forms > form');
        forms.hide();
        forms.eq(Math.floor(Math.random() * forms.length)).show();
    });​
});​
</script>
于 2012-06-19T20:56:36.233 に答える
0

JQUERYの更新

jQueryコードを中に入れます

$(document).ready(function() { // コード });

$(document).ready(function() {
    $('#randomForm').click(function() {
        var forms = $('#forms > form');
        forms.hide();
        forms.eq(Math.floor(Math.random() * forms.length)).show();
    });
});
于 2012-06-19T20:58:08.513 に答える