为什么prototype.js会干扰不相关的javascript操作?

发布于 2024-09-30 22:02:22 字数 682 浏览 3 评论 0原文

建立一个网站。当我这样订购标签时,LightCycle 可以工作,但 Lightbox 不能:

Lightcycle 可以工作,Lightbox 不能:

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

当我这样订购时,Lightbox 可以工作,但 LightCycle 不能:

Lightbox有效,LightCycle 无效:

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

令人沮丧。

Building a website. When I order my tags like this, LightCycle works but Lightbox doesn't:

Lightcycle works, Lightbox doesn't:

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

When I order it like this, Lightbox works but LightCycle doesn't:

Lightbox works, LightCycle doesn't:

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

Frustrating.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无悔心 2024-10-07 22:02:22

您遇到了冲突,因为两个库都使用 $ 快捷方式。查看 jQuery 的无冲突功能或原型的等效功能。

您可以在此处阅读更多信息:http://docs.jquery.com/Using_jQuery_with_Other_Libraries

You're having a conflict because both libraries use the $ shortcut. Look into the noconflict feature of jQuery or the equivalent of prototype.

You can read more here: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

落在眉间の轻吻 2024-10-07 22:02:22

因为它们使用相同的 $ 简写。

请尝试以下操作:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript" src="./js/prototype.js"></script>

Because they use the same $ shorthand.

Try the following:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript" src="./js/prototype.js"></script>
有木有妳兜一样 2024-10-07 22:02:22

调用 jQuery.noConflict() 可以修复它吗?如果您错过了 $ 快捷方式,您还可以在 on 函数中为 jQuery 指定一个别名:

 var $j = jQuery.noConflict();

参考资料:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

http://samsami2u.wordpress.com/2009/03/14/prototypejs-jqueryjs-conflict-and-resolution/

Does a call to jQuery.noConflict() fix it? You can also give jQuery an alias within your on functions if you miss the $ shortcut:

 var $j = jQuery.noConflict();

References:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

http://samsami2u.wordpress.com/2009/03/14/prototypejs-jqueryjs-conflict-and-resolution/

蓝眸 2024-10-07 22:02:22

因此,使用超现实梦境再污染,我实现了这一点:

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

   <script>
     var $j = jQuery.noConflict();

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

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


<script type="text/javascript" src="./js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="./js/lightbox.js"></script> 

<script type="text/javascript" src="http://malsup.github.com/chili-1.7.pack.js"></script>
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.lite.1.0.min.js"></script>

<script type="text/javascript">

$(function() {
    $('#slideshow1').cycle({
        delay: 2000,
        speed: 1000,
    });


});

</script>

下一个浮现在脑海中的问题是用什么来替换“someid”。我假设“#slideshow1”。但当我这样做时,显示的只是一个纯黑色的页面。恼人的。

So using Surreal Dreams recontamination, I implemented this:

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

   <script>
     var $j = jQuery.noConflict();

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

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


<script type="text/javascript" src="./js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="./js/lightbox.js"></script> 

<script type="text/javascript" src="http://malsup.github.com/chili-1.7.pack.js"></script>
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.lite.1.0.min.js"></script>

<script type="text/javascript">

$(function() {
    $('#slideshow1').cycle({
        delay: 2000,
        speed: 1000,
    });


});

</script>

The next question that springs to mind is what to replace 'someid' with. I'm assuming '#slideshow1'. But what displays when I do this is just a plain black page. Annoying.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文