1

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

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

//jQuery anchor plugin

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

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

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

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

谢谢!

更新:

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

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

4

3 回答 3

2

尝试

$.fn.anchor

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

于 2009-05-22T14:17:32.787 回答
2

我认为应该是:

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

编辑:

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

于 2009-05-22T14:17:35.220 回答
0

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

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

于 2009-06-03T15:02:49.290 回答