【问题标题】:jQuery function is not called when script src is added to head将脚本src添加到head时不调用jQuery函数
【发布时间】:2016-07-22 22:26:04
【问题描述】:

我是一个有资源等的新手,我想当然地认为我可以简单地将脚本 src 添加到标题中,然后添加任意数量的脚本或函数。在大多数情况下,这工作正常,但现在我遇到了一个我无法解决的问题。

我可以运行一个脚本或另一个脚本,无论我尝试了多少不同的排列,两者都不会和谐地工作。我敢肯定有一个简单的修复或我完全错过的东西。我在网上查看了一个白痴的指南,但没有找到任何有用的东西。

这两个函数脚本在不同的地方。一个在头部并从 HTML 页面的正文中调用,另一个在包含添加到每个页面的动态链接中。

这会加载所有内容,除了正文中的内容

<!--Creation and hiding of div to allow images load-->
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

<script src="../js/helperFunctions.js"></script>

<!-- jQuery (required) -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../js/jquery.min.js"><\/script>')</script>

<!-- Syntax highlighting -->
<link rel="stylesheet" href="../mainCSS/prettify.css" media="screen">
<script src="../js/prettify.js"></script>

<!-- AnythingSlider -->
<link rel="stylesheet" href="../mainCSS/anythingslider.css">
<script src="../js/jquery.anythingslider.js"></script>

<script>
    $(function(){
            prettyPrint script here;
</script>

<script>
    $(function(){
            slider script here
</script>

虽然这会加载正文脚本,但不会加载其他脚本。:

<!-- jQuery (required) -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../js/jquery.min.js"><\/script>')</script>

<!-- Syntax highlighting -->
<link rel="stylesheet" href="../mainCSS/prettify.css" media="screen">
<script src="../js/prettify.js"></script>

<!-- AnythingSlider -->
<link rel="stylesheet" href="../mainCSS/anythingslider.css">
<script src="../js/jquery.anythingslider.js"></script>

<script>
    $(function(){
            prettyPrint script here;
</script>

<script>
    $(function(){
            slider script here
</script>

   <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
   <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
   <script src="../js/helperFunctions.js"></script>

然后我尝试将脚本 src 放入包含中,包括两次 src 和许多其他愚蠢无意义的想法。

如果有人能帮忙就太好了!非常感谢

【问题讨论】:

  • 首先删除额外的 jQuery 脚本引用(应该只包含一次),看看会发生什么。另外,我假设您只是在剪断不相关的代码,但是您的 $(function() { 块在实际代码中被关闭了,对吗?
  • @JasonP - 嗨,是的,我删除了所有功能代码以节省问题中的空间。他们都被关闭了。我刚刚遇到另一个页面,其中的脚本少得多,(一个)在头部也显示了相同的特征
  • @JasonP - 另外,我认为脚本 src 应该是头脑中的第一件事。对吗?
  • 只要在您尝试使用 $ 之前包含它们,它们的去向并不一定重要。 &lt;head&gt; 是它的标准位置。一般来说,脚本的顺序应该是 jQuery 库,jQuery 插件,你的外部脚本,然后是内联脚本。不过,这可能会因具体情况而异。
  • @JasonP - 谢谢,我会整理出来 :) 是否应该有 jquery 的备份 src?如果一个链接断开?

标签: php javascript jquery html api


【解决方案1】:

您在此代码中包含 jQuery 三次。我不确定这是否是问题所在,但这不是解决方案

// jquery from jquery.com
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

<!-- jQuery (required) --> // jQuery from google
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../js/jquery.min.js"><\/script>')</script>
// both of these are expendable

这可能会导致冲突,因为要包含的最后一个是旧版本的库。你只需要包含。我假设您使用 migrate 是因为您的脚本中运行了较旧的 jQuery 代码。

代码错误

<script>
$(function(){ // syntax error
        prettyPrint script here;
</script>

<script>
$(function(){ // same error
        slider script here
</script>

您在此处有语法错误,并且此代码之后的任何脚本都将无法运行或工作。

【讨论】:

  • 应该包括哪一个?
  • 你想要哪个。但只有一个。
【解决方案2】:

我在一个返回错误的脚本中有一个函数。这似乎停止了代码的大部分。 -.-

现在头部也只有一个 jquery 实例。

【讨论】:

    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多