1

私は独自の 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 の間で友情を築く方法を知っている人はいますか?

4

3 に答える 3

2

試す

$.fn.anchor

コードサンプルをテストしたところ、結果はどちらも同じです。しかし、一般的には、jQuery オブジェクト プロトタイプを拡張するため、将来的には$.fnを拡張します。$.anchorだけを実行すると、オブジェクトのインスタンスが拡張されます。

于 2009-05-22T14:17:32.787 に答える
2

私はそれがすべきだと思います:

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

編集:

他の人たちと同じように、私も両方の回で同じ結果が得られます。

于 2009-05-22T14:17:35.220 に答える
0

別のフォーク - alex の django_debug_toolbarに切り替えることで、この問題を部分的に解決します。

しかし、私が以前に使用し、jQuery でこの問題が含まれているdavid cramer の django_debug_toolbarよりも醜いと思います。将来、この問題を回避するための機能を alex のフォークから dcramer のフォークに移動したいと考えています。

于 2009-06-03T15:02:49.290 に答える