2009-01-29 82 views
8

我在使用jQuery与DokuWiki一起玩的时候遇到了一些麻烦 - 有没有人已经成功完成了这个任务?DokuWiki和jQuery可以一起玩吗?

目前,包括jQuery reuslts在各种JS功能打破,我无法追查问题的根源。有什么东西需要寻找,这往往与jQuery冲突?

回答

16

我不熟悉的DokuWiki个人,但如果事情是刚刚突破的时候,你有jQuery的那么它可能与jQuery中的“$”变量冲突。您可以使用jQuery的noConflict方法要解决这个问题,更多的信息在这里: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

又见这堆栈溢出职位: jQuery & Prototype Conflict

+6

据我所知,唯一的项目加入到全局命名空间是$和jQuery(这是同义词)。使用noConflict()可以将这个减少到jQuery。希望DokuWiki在全局命名空间中不引用任何名为jQuery的东西;) – 2009-01-29 21:54:32

6

您可以通常避免使用任何jQuery的冲突加载jquery.js继权:

jQuery.noConflict(); 

然后,它不会覆盖$变量,这是最常见的故障,这些JS源图书馆冲突。不过,您需要使用jQuery来调用jQuery函数。例子:

jQuery(function() { ... }); // $(function ... 
jQuery(".klass").hide(); // $(".klass" ... 
0
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?