【问题标题】:Problem to have access to jquery plugin inside $(document).ready() with django-debug-toolbar使用 django-debug-toolbar 访问 $(document).ready() 中的 jquery 插件的问题
【发布时间】:2010-10-28 05:40:12
【问题描述】:

我编写了自己的 jquery 插件,但很惊讶我无法在 $(document).ready 函数中访问它。

我写了这个测试页并且更惊讶:

//jQuery anchor plugin

(function ($) {
    $.anchor = {
        hashTrim: /^.*#/,
    }
})(jQuery);

console.log($.ajax);
console.log($.anchor);

$(function () {
    console.log($.ajax);
    console.log($.anchor);
});

我在 firebug 控制台中有 4 个完全不同的值。有人知道并且可以描述我为什么会这样吗?主要问题 - 我如何访问 $(function() {} 中的 $.anchor 变量???

谢谢!

更新:

我刚刚发现了问题 - django-debug-toolbar。当我禁用它时,一切都会好起来的!

有谁知道如何在 jquery 和 django-debug-toolbar 之间建立友谊?

【问题讨论】:

    标签: jquery django jquery-plugins


    【解决方案1】:

    试试

    $.fn.anchor
    

    刚刚测试了您的代码示例,两次结果都相同。但总的来说,为了将来扩展 $.fn,因为它扩展了 jQuery 对象原型。当您只执行 $.anchor 时,您只是在扩展该对象的实例。

    【讨论】:

    • 两次都给了我相同的 2 个值。我不明白这个问题。
    • 对不起,我发现错误 - django-debug-toolbar!多谢!斯帕西博! :-)
    【解决方案2】:

    我认为应该是:

    (function($) {
        $.fn.anchor = {
            hashTrim: /^.*#/,
        }
    })(jQuery);
    

    编辑:

    我两次都得到同样的结果,和其他人一样。

    【讨论】:

    • 抱歉,我发现了我的问题 - django-debug-toolbar!多谢!斯帕西博! :-)
    【解决方案3】:

    我通过切换到另一个分支 - alex's django_debug_toolbar 部分解决了这个问题。

    但我认为它更丑陋,然后是david cramer's django_debug_toolbar,我以前使用过,其中包含 jQuery 的这个问题。我希望将来能将避免这个问题的功能从 alex 的分支转移到 dcramer 的分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 2014-08-28
      • 2013-07-19
      • 1970-01-01
      • 2010-11-03
      • 2010-12-11
      相关资源
      最近更新 更多