【问题标题】:two javascripts won't execute on the same page两个 javascript 不会在同一页面上执行
【发布时间】:2013-12-30 08:55:00
【问题描述】:

我有两个 jquery javascripts(scrollpane 和 last.fm 一个)。但是,无论是稍后在<head> 中发布的哪一个,都会执行并显示在页面上,而另一个则消失。我不知道如何解决这个问题。这是我的头代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<!--LASTFM-->
    <link href="css/engage.lastfm.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="js/engage.lastfm.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
        // Begin jQuery goodness
        $('div#lastfm').lastFM({
        username: 'angrypink',
        apikey: '255b0123e857aa3f6fd52a76b70ec15d',
        number: 2,
        artSize: 'medium',
        onComplete: function(){
        }
        });
        // End jQuery goodness
        });
    </script>

<!--JSCROLL-->
    <link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet" media="all" />
    <script type="text/javascript" src="js/jquery.mousewheel.js"></script>
    <script type="text/javascript" src="js/jquery.jscrollpane.min.js"></script>
    <script type="text/javascript" id="sourcecode">
        $(document).ready(function() {
          var $images = $(".tumblr img")
          , imageCount = $images.length
          , counter = 0;
          $images.one("load",function(){
             counter++;
             if (counter == imageCount) {
                 $('.scroll-pane').jScrollPane();
         } 
        }).each(function () {
            if (this.complete) {
                $(this).trigger("load");
            }
        });
        });
    </script>

</head>

【问题讨论】:

  • 所有 jquery 就绪函数都将执行,它们不会重叠,但如果一个文档就绪失败,它将阻止其他文档执行.. 你可以在两者上放置 alert 或 console.log 并检查跨度>
  • 我该怎么做?
  • 我进入 chrome 并在页面上打开了 javascript 控制台。这是出现了什么:Uncaught TypeError: Object [object Object] has no method 'lastFM' index.html:25 (anonymous function) index.html:25 c.extend.ready jquery.min.js:26 L jquery.min.js:33event.returnValue is deprecated. Please use the standard event.preventDefault() instead. jquery.js:5374
  • $(document).ready(function(){ alert("First: I am called") }) 和第二个 alert("Second: I am called") 相同,然后检查您的控制台记录错误
  • 您有两个不同(可能不兼容)的 jQuery 版本,其中一个被加载了两次。这是一团糟。 了解您正在加载的内容,然后整理一下。

标签: javascript jquery html head


【解决方案1】:

你犯了一个错误:你有多个 jquery 定义:

      <script src="js/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

试着只放一次,保留这个:&lt;script src="js/jquery-1.10.2.min.js"&gt;&lt;/script&gt;

因为是本地的,不依赖谷歌

尝试清理一下,因为 jquery 的多个定义会产生错误

【讨论】:

  • 当我删除 1.4 jquery 然后 last.fm 代码不起作用,但如果我删除 1.10 查询,那么页面上的所有其他 javascripts 都不起作用!
  • 您是否在脚本顶部包含了 jquery ?在包含其他 .js 之前?
  • 这实际上就像一个魅力,非常感谢你!!!我不知道你必须把jquery一直放在&lt;head&gt;的顶部
猜你喜欢
  • 2012-10-06
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多