1

情况:

  • 在一个网页上,我使用语法荧光笔和灯箱 2
  • 语法荧光笔使用 JavaScript。Lightbox 2 使用 jQuery(版本 1.7.2)
  • 当我在独立(不同的页面)上运行每个脚本时,它可以工作
  • 仅当我在同一页面上运行两者时才会出现问题
  • 在谷歌浏览器上,网页运行完美
  • 在 IE 8 上,当调用 lightbox2 函数的一部分时出现错误
  • 错误指向 jquery1.7.2 文件说明此对象不支持的方法/属性
  • 准确的错误代码是:parts = rfxnum.exec(val);
  • 我插入了一个 alert() 来显示 rfxnum 和 val 的值
  • rfxnum=/^([+-]=)?([\d+.-]+)([az%]*)$/i
  • 值 = 802
  • 我发现的疯狂的事情是,当我独立运行这两个脚本时,警报显示 rfxnum 和 val 的值相同,但它运行良好。
  • 语法荧光笔在所有条件下都能正常运行

我的猜测:-Syntax Highlighter 似乎干扰了 jQuery 1.7.2 库中的值/函数/参数。或者语法高亮器和 jQuery 库都引用的一些全局值。

我的问题:

  • 有没有办法阻止语法荧光笔或任何其他非 jQuery JS 脚本不交互/引用 jQuery 库。
  • 如果答案是,JavaScript 首先不会引用 jQuery 库,那么我的问题是发生这种情况的一些可能原因是什么。
  • 或者,有没有办法将 jQuery lib 和相关的 JS 函数打包在一起,这样其他函数就不能引用包中的任何函数/变量

我将不胜感激任何建议/见解。

4

1 回答 1

2

您可以使用 noConflict()

<!-- Putting jQuery into no-conflict mode. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>

var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.

使用 jQuery.noConflict(); -灯箱和 jQuery 冲突

于 2013-06-28T07:36:48.457 回答