我在使用jQuery与DokuWiki一起玩的时候遇到了一些麻烦 - 有没有人已经成功完成了这个任务?DokuWiki和jQuery可以一起玩吗?
目前,包括jQuery reuslts在各种JS功能打破,我无法追查问题的根源。有什么东西需要寻找,这往往与jQuery冲突?
我在使用jQuery与DokuWiki一起玩的时候遇到了一些麻烦 - 有没有人已经成功完成了这个任务?DokuWiki和jQuery可以一起玩吗?
目前,包括jQuery reuslts在各种JS功能打破,我无法追查问题的根源。有什么东西需要寻找,这往往与jQuery冲突?
我不熟悉的DokuWiki个人,但如果事情是刚刚突破的时候,你有jQuery的那么它可能与jQuery中的“$”变量冲突。您可以使用jQuery的noConflict方法要解决这个问题,更多的信息在这里: http://docs.jquery.com/Using_jQuery_with_Other_Libraries
又见这堆栈溢出职位: jQuery & Prototype Conflict
您可以通常避免使用任何jQuery的冲突加载jquery.js
继权:
jQuery.noConflict();
然后,它不会覆盖$
变量,这是最常见的故障,这些JS源图书馆冲突。不过,您需要使用jQuery
来调用jQuery函数。例子:
jQuery(function() { ... }); // $(function ...
jQuery(".klass").hide(); // $(".klass" ...
还有,增加了jQuery DokuWiki的插件:http://www.dokuwiki.org/plugin:jquery
jQuery.noConflict();
然后你可以使用jQuery("your element selector")
或其他什么来代替$
。要在代码中使用了更好$
只是包装的功能周围像这样:
jQuery.noConflict()
(function($) {
$("your element selector").whatever();
})(jQuery)
额外的好处,以What is the benefit of wrapping a jquery function in a closure?
据我所知,唯一的项目加入到全局命名空间是$和jQuery(这是同义词)。使用noConflict()可以将这个减少到jQuery。希望DokuWiki在全局命名空间中不引用任何名为jQuery的东西;) – 2009-01-29 21:54:32