【问题标题】:jQuery Statment not working in separate file?jQuery 语句不在单独的文件中工作?
【发布时间】:2014-06-17 13:14:01
【问题描述】:

当我将它包含在我的“头”元素主题中时,我的简单 jQuery 语句不知何故不起作用:

<script src="js/test.js" type="text/javascript"></script>

但是当我在我的“body”元素中使用它时,它就像

<script>
  $( "#testid" ).click(function() {
  alert( "Handler for .click() called." );
  });
</script>

我已经用 firebug 检查了我的 test.js 文件是否正确包含在我的网站上。那么我做错了什么? test.js 文件看起来与上面的“脚本”部分完全一样,只是没有脚本标签。

任何想法都值得赞赏:)

【问题讨论】:

  • 将您的代码包装在文档的就绪事件中..@!
  • 你是在 jquery min 文件之后添加 test.js 吗??
  • 确保在 jQuery 之后将其包含在 head 中。
  • Rajaprabhu 刚刚击中它 - 它总是包含在 jquery btw 之后。
  • 你正在改变两个不同的东西(头/正文和内联/外部文件)并指责错误的东西。

标签: javascript jquery html include head


【解决方案1】:

您忘记告诉jQuery 等到DOM ready 再启动您的代码:

$(function() {
    $( "#testid" ).click(function() {
        alert( "Handler for .click() called." );
    });
});

当您将代码包含在主体标记中在目标元素之后 时,您的代码将起作用。但是,如果您将其包含在正文部分目标元素之前头部部分,您的代码将无法正常工作。因此建议始终将您的代码包装在DOM ready 中。 DOM ready 可以写成不同的方式:

以下三种语法都是等价的:

$( document ).ready( handler )
$().ready( handler ) (this is not recommended)
$( handler )

查看文档:http://api.jquery.com/ready/, 和教程:http://learn.jquery.com/using-jquery-core/document-ready/

【讨论】:

  • @Kris 你的评论是为了我的回答还是刚刚被删除的评论?
【解决方案2】:

感觉就像我撕毁了 Rajaprabhu 但是:

<script>
  $(document).ready(function (){
    $( "#testid" ).click(function() {
      alert( "Handler for .click() called." );
    });
  });
</script>

【讨论】:

    【解决方案3】:

    试试这个..

    <script>
    $(document).ready(function(){
      $( "#testid" ).click(function() {
         alert( "Handler for .click() called." );
      });
    });
    
    </script>
    

    还要确保在 jquery scipt 之后添加了您的脚本。

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2021-04-25
      • 1970-01-01
      • 2020-10-08
      • 2011-08-12
      • 1970-01-01
      相关资源
      最近更新 更多