0

ボタンのあるページがあります。ボタンが押されると、AJAX 呼び出しが行われ、その呼び出しからの html がメイン ページにある div コンテナーを置き換えます。2 番目のページにロードする必要があるスクリプトがあります。したがって、私の懸念は、2 番目のページのスクリプトが実行されているときに、コンソールに「 Object # has no method 'find' 」というエラーが表示されることです。これは、スクリプトが JQuery 関数を呼び出せないという問題であることを知っています。2 番目のページが生成された後に JQuery 関数を呼び出す方法を知っている人はいますか? 私のページが何をするかについての例を次に示します。

メインページ:

<html>
<head>
<script type="text/javascript">
$(document).ready({
    $('body').on('click', '.button', function() {
        $.ajax({
            type: 'GET',
            url: 'page.php'
            data { ... },
            success: function(e){
                $('#container').html(e);
            }
        });
    });
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<button class="button" value="Click me!"></button>
<div id="container">
</div>
</body>
</html>

ページ.PHP:

echo '<div id="dropbox">';
echo '  <div class="message">Drop files here</i></div>';
echo '</div>';
echo '<script src="js/filedrop.js"></script>';
echo '<script src="js/upload.js"></script>';

そして、スクリプトが 2 ページ目から実行されると、< Object # has no method 'find' > エラーが発生します。メイン ページにスクリプトを含めると、スクリプトでは何も機能しません。このすべてが機能するために正しい方向に私を向ける場所を知っている人はいますか?

編集 **

混乱させてすみません。私が入れたコードは、私が本当に素早くまとめたものです。ボタン クリック コードは document.ready にありますが、2 番目のスクリプトから呼び出される他の関数は document.ready にありません。JQuery 関数を認識するために、document.ready コールバックに含まれている必要がありますか?

編集2 **

複数の Document.Ready を持つことができることを明確にしていただきありがとうございます。10 分間の時間枠が終了したら、回答を選択します。

4

2 に答える 2

4

スクリプト タグの順序が間違っています。使用する前に jQuery をロードする必要があります。また、DOM と対話するすべてのコードを$(document).ready()コールバックに入れます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('body').on('click', '.button', function() {
            $.ajax({
                type: 'GET',
                url: 'page.php'
                data { ... },
                success: function(e){
                    $('#container').html(e);
                }
            });
        });
    });
</script>
于 2013-06-23T23:28:19.357 に答える
1

コードを中に入れます

$(document).ready(function() {
  // your code  
  $('body').on('click', '.button', function() {
     $.ajax({
        type: 'GET',
        url: 'page.php'
        data { ... },
        success: function(e){
            $('#container').html(e);
        }
    });
  });
});

document.readyは、ページが読み込まれるか、ファイルmyscript.jsを作成することを意味し、そのファイルではすべてのコードを document.ready にラップし、

echo '<script src="js/myscript.js"></script>';
于 2013-06-23T23:26:11.077 に答える