首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Redmine插件中包含jquery

问在Redmine插件中包含jquery
EN

Stack Overflow用户
提问于 2011-08-03 19:55:50
回答 1查看 3.1K关注 0票数 2

我正在尝试制作一个使用jquery的Redmine插件。

当我在我的视图中添加以下行时,我得到了冲突:

代码语言:javascript
复制
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

Uncaught TypeError: Cannot call method 'hasChildNodes' of undefined
prototype.js:5734
Uncaught TypeError: Object [object Object] has no method 'dispatchEvent'
prototype.js:828
Uncaught TypeError: Object [object Object] has no method 'attachEvent'

视图是一个钩子。

如果我删除<script src="">,它就可以工作,但是我就没有jQuery可用了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-03 19:59:36

查看它,prototype库也被加载了。通常,通过将库自身赋值给$变量,库将自动加载到全局作用域中。

要让jQuery正常工作,只需在加载jQuery之后添加$.noConflict(); (请参阅jQuery应用程序接口上的noConflict )。这将从$中卸载jQuery,并将其重新指定为以前的状态(原型)。

然后使用jQuery对象而不是$快捷方式访问jQuery。

代码语言:javascript
复制
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });

如果您确实想使用快捷方式变量(例如,$j),则可以在执行noConflict时将其赋值:

代码语言:javascript
复制
var $j = $.noConflict(); // Then use $j instead of $

或者,您可以创建一个匿名函数,并在其中将jQuery分配给$。这只在函数的作用域内完成(所以prototype仍然是$在作用域之外):

代码语言:javascript
复制
(function($) { 
  $(function() {
    // more code using $ as alias to jQuery
  });
})(jQuery);

所有这些(以及其他一些示例)都显示在noConflict页面上-所以您可能希望在那里查看一下。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6926052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档