use*_*689 2 html javascript jquery redmine redmine-plugins
我正在尝试制作一个使用jquery的Redmine插件.
当我在视图中添加以下行时,我会遇到冲突:
<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'
Run Code Online (Sandbox Code Playgroud)
视图是一个钩子.
如果我删除它<script src="">,它的工作原理,但我没有使用jQuery.
看一下,原型库也被加载了.通常,库会通过将自身分配给$变量来自动加载到全局范围中.
要使jQuery正常工作,只需$.noConflict();在加载jQuery后添加 (请参阅jQuery API上的noConflict).这将卸载jQuery $并将其重新分配给之前的(原型).
然后使用jQuery对象而不是$快捷方式访问jQuery .
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
Run Code Online (Sandbox Code Playgroud)
如果你真的想使用快捷变量(例如$j),那么你可以在执行noConflict时分配它:
var $j = $.noConflict(); // Then use $j instead of $
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建一个匿名函数并将jQuery分配给$它.这只在函数范围内完成(因此原型仍然在范围之外):
(function($) {
$(function() {
// more code using $ as alias to jQuery
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
所有这些(以及一些其他示例)都显示在noConflict页面上 - 因此您可能希望在那里查看.