我在使用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