【问题标题】:when importing multiple javascript files the javascript seems to break导入多个 javascript 文件时,javascript 似乎会中断
【发布时间】:2010-11-19 05:32:59
【问题描述】:

我正在尝试将几个不同的 js 文件合并到一个页面中。出于某种原因,尽管无论哪个是第一个,似乎都坏了。这是我正在使用的代码:

<link href="inc/css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="inc/css/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="inc/js/prototype.js"></script>
<script type="text/javascript" src="inc/js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="inc/js/lightbox.js"></script>
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>

    <script type="text/javascript" src="inc/js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="inc/js/jquery.slideshow.lite-0.4.js"></script>
    <script type="text/javascript" charset="utf-8">
        $(document).ready(function(){
            $("#slideshow2").slideshow({
                pauseSeconds: 6,
                height: 196
            });
        });
    </script>

第一个文件用于灯箱和其他功能,第二个文件用于幻灯片。根据顺序,一个或另一个会起作用,但绝不会同时起作用。我做错了什么?

非常感谢任何帮助,谢谢。

【问题讨论】:

  • JQuery 有很多灯箱实现。您是否考虑过抓取原始灯箱并移植到基于 jquery 的灯箱?

标签: javascript jquery import


【解决方案1】:

您需要在无冲突模式下运行 jquery,请参阅:

从上面:

<html>
 <head>
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script>
     jQuery.noConflict();

     // Use jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });

     // Use Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

【讨论】:

  • 啊,我明白你的意思了。我不完全确定语法,我是否必须添加您从“jQuery.noConflict(); // 使用 jQuery 通过 jQuery(...) jQuery(document).ready(function( ){ jQuery("div").hide(); }); // 使用 Prototype 和 $(...) 等 $('someid').hide();"如果有的话在哪里?您是否可以将我缺少的代码粘贴到我发布的内容中?非常感谢。
  • @waywardmd - 不,你不知道,这只是它如何使用的一个例子。在 jquery 之前包含原型,只需将行 jQuery.noConflict();在脚本的开头。我建议阅读我提供的链接。
  • @waywardmd - 另外,在编写 jQuery 脚本时,请确保使用 jQuery 而不是原型使用的“$”,例如jQuery.hide("慢");
【解决方案2】:

您正在使用 jQuery 和原型,它们都定义了 $() 函数。

你需要使用

jQuery.noConflict();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-30
    • 2022-10-24
    • 1970-01-01
    • 2020-08-16
    • 2021-09-28
    • 2019-02-26
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多