0

サイトはこちら

コード$('#club').change(function(event)が機能するのに機能しないのはなぜ$(document).ready(function()ですか? 機能は同じですが、前者$.ajaxは単純に何もしません。

<script type="text/javascript">

    $(document).ready(function() {
        $.ajax({
            type: "post",
            url: "eventinfo.php",
            data:  $(this).serialize(),
            success: function(data) {
                $('#right_inside').html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>');
                },
            dataType: "json"
        });
    });

    $('#club').change(function(event) {
        $.ajax({
            type: "post",
            url: "eventinfo.php",
            data:  $(this).serialize(),
            success: function(data) {
                $('#right_inside').html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>');
                },
            dataType: "json"
        });

    });

</script>
4

3 に答える 3

4

リクエストが行われます。これは、Chrome デベロッパー ツールの [ネットワーク] タブをチェックすることで簡単に確認できます。のような空の配列を返しますdata = []。そのdata[0].dayため、エラーがスローされ、そのエラーはキャッチされません。

2 つのコード ブロックの違いは、変数に何が含まれているかですthis。最初のものは、あなたのdocument. <select>2 つ目は、id を持つ要素を含む jquery オブジェクトclubです。で同じ要素をシリアル化したいので、に$(document).ready変更$(this)するだけ$(#club)です。

于 2012-06-14T00:38:19.597 に答える
2

「ready」ハンドラーで参照することを期待$(this)しているのは何ですか?「change」ハンドラーでは、その「#club」要素ですが、「ready」ハンドラーでは、おそらく役に立たないものになります。

代わりに、「準備完了」ハンドラーが$(this).serialize()必要だと思います。$('#club').serialize()

于 2012-06-14T00:37:11.110 に答える
1

問題は HTML コードにあります。

<select id="club" class="dropdown" name="club">
    <option id="Let" lo'="" lola="" @="" disco="" kill="" s="">Let's Kill Disco @ Lola Lo</option>
    <option id="Fuzzy Logic @ The Place">Fuzzy Logic @ The Place</option>
    <option id="BOOM! @ The Place">BOOM! @ The Place</option>
    <option id="Fuzzy Logic @ Ballare">Fuzzy Logic @ Ballare</option>
    <option id="Jelly Baby @ Ballare">Jelly Baby @ Ballare</option>
    <option id="Fiesta @ Fez">Fiesta @ Fez</option>
</select>

最初のエントリを見てください。IDが存在しないため機能せず、タグがすべてめちゃくちゃです。イベントをリストに追加するときは、引用符をエスケープしていることを確認してください。これを行うと、jQuery$.ajaxリクエストが正常に機能するはずです。

于 2012-06-14T00:54:45.127 に答える