【问题标题】:Can DokuWiki & jQuery play together?DokuWiki 和 jQuery 可以一起玩吗?
【发布时间】:2009-01-29 03:51:58
【问题描述】:

我在让 jQuery 与 DokuWiki 配合使用时遇到了一些问题 - 有人已经成功地做到了这一点吗?

目前,包括 jQuery 在内的各种 JS 功能中断,我无法追踪问题的根源。有哪些东西会与 jQuery 发生冲突?

【问题讨论】:

    标签: javascript jquery dokuwiki


    【解决方案1】:

    我个人对 DokuWiki 并不熟悉,但如果在包含 jQuery 时出现问题,那么它可能与 jQuery 中的“$”变量发生冲突。你可以使用 jQuery 的 noConflict 方法来解决这个问题,更多信息在这里: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

    另请参阅此 Stack Overflow 帖子: jQuery & Prototype Conflict

    【讨论】:

    • AFAIK,添加到全局命名空间的唯一项目是 $ 和 jQuery(它们是同义词)。使用 noConflict() 将其减少为 jusy jQuery。希望 DokuWiki 不会在全局命名空间中引用任何名为 jQuery 的东西 ;)
    【解决方案2】:

    您通常可以在加载jquery.js 后立即使用以下内容来避免任何 jQuery 冲突:

    jQuery.noConflict();
    

    然后,它不会覆盖$ 变量,这是这些 JS 库冲突中最常见的问题根源。不过,您需要使用jQuery 调用jQuery 函数。例子:

    jQuery(function() { ... }); // $(function ...
    jQuery(".klass").hide();    // $(".klass" ...
    

    【讨论】:

      【解决方案3】:

      还有一个将 JQuery 添加到 DokuWiki 的插件:http://www.dokuwiki.org/plugin:jquery

      【讨论】:

        【解决方案4】:
        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? 的答复中描述的其他好处

        【讨论】:

          猜你喜欢
          • 2015-06-30
          • 2012-02-06
          • 2015-07-03
          • 2020-06-17
          • 1970-01-01
          • 1970-01-01
          • 2016-05-21
          • 1970-01-01
          • 2010-11-25
          相关资源
          最近更新 更多