0

我有一个有按钮的页面。当按下按钮时,会进行 AJAX 调用,然后该调用中的 html 会替换我在主页上的 div 容器。我有需要在第二页上加载的脚本。所以我担心的是,当第二页的脚本正在运行时,它会在控制台中给我一个“Object # has no method 'find'”错误。我知道这是脚本无法调用 JQuery 函数的问题。有谁知道生成第二个页面后如何调用 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>';

然后当从第二页执行脚本时,我得到 < Object # has no method 'find' > 错误。如果我在主页上包含脚本,则脚本中没有任何作用。任何人都知道在哪里为我指明正确的方向以使所有这些工作都有效吗?

编辑 **

很抱歉给大家带来了困惑。我放的代码只是我快速组合起来的东西。按钮单击代码将在 document.ready 中,但从第二个脚本调用的其他函数不在 document.ready 中。他们是否需要在 document.ready 回调中才能识别 JQuery 函数?

编辑 2 **

感谢您澄清您可以拥有多个 Document.Readys。我将在 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 回答