2009-01-29 87 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?