有没有办法阻止某些javascript函数访问jquery库

时间:2013-06-28 07:32:27

标签: javascript jquery

情况:

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

我的猜测: -Syntax Highlighter似乎在jQuery 1.7.2库中干扰w / values / functions / parameters。或者语法高亮显示和jQuery库引用的一些全局值。

我的问题:

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

我会很感激任何建议/见解。

1 个答案:

答案 0 :(得分:2)

你可以use 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(); - Lightbox and jQuery conflict