【问题标题】:How do I prevent 2 js files to be overwrite in my HTML code?如何防止 2 个 js 文件在我的 HTML 代码中被覆盖?
【发布时间】:2012-02-21 19:41:17
【问题描述】:

如何防止 2 个 .js 文件在我的 html 代码中被覆盖? 我有 2 个 .js 文件,一个用于滚动条,另一个用于下拉菜单。 当我在模板代码中导入这两个文件时,第一个文件将不起作用(第二个文件将覆盖第一个文件)。

我很困惑如何防止这种情况并使两者都能正常工作。

【问题讨论】:

    标签: javascript html overwrite


    【解决方案1】:

    好吧,覆盖不是正确的词。由于全局变量可能具有相同的名称,它们可能会相互冲突。不看它们就不可能找出问题所在......

    jQuery 和 MooTools 以相互干扰而闻名。您应该在您的代码中使用其他任何东西: 在 login.js 文件的开头放置以下行:

    var J = jQuery.noConflict();
    

    并为 J 替换每个 $

    然后,在 scroll.js 上,您会在最后看到:

    window.addEvent('domready', function(){             
        // -- first example, vertical scrollbar --
        makeScrollbar( $('scrollbox'), $('scrollbar'), $('handle') );
    });
    

    将 makeScrollbar 行替换为

    makeScrollbar( J('#scrollbox')[0], J('#scrollbar')[0], J('#handle')[0] );
    

    它应该可以正常工作,但正如我所说,您应该寻找仅使用 jQuery 或 Mootools 的解决方案

    【讨论】:

    • 第 2 个链接用于滚动条,第 3 个链接用于下拉菜单
    • 乍一看,scroll.js调用window.addEvent(),这个是不存在的。它应该是 window.addEventListener()
    • 感谢您的回复。我是 javascript 和 jquery 的新手。您的意思是我必须创建名为 J 的变量,然后将 .js 文件中的所有 $s 替换为 J ?
    • 首先,尝试在 scroll.js 中将 window.addEvent() 替换为 window.addEventListener()。如果它不起作用,是的,尝试一下
    • 哇,它起作用了! :) 非常感谢安德烈。我从未忘记你的帮助。非常感谢:X
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2021-02-08
    • 2020-07-23
    • 1970-01-01
    • 2015-01-10
    • 2016-01-05
    • 2018-06-27
    相关资源
    最近更新 更多