1

この構文は、いくつかの高度なjQueryで見られます。

$container

のように:

$input = $container.find('.fn_this_timeline')

編集:以下のコメントのいくつかに基づいて、私が見ることができる「$ container」の最初のインスタンスを明確にするために、最初に作成されます:

init: function($container){
var myThing = this,
$input = $container.find('.fn_do_some_calc'),
$submit = $container.find('.fn_do_some_other_calc'),
defaultValue = parseInt($input.val(), 10);

myThing.$container = $container;

上記の行は私をさらに混乱させます:/

私は次のようなjQueryセレクターを使用することに慣れています:$('#mySelector')。method('etc');

誰かが違いを教えてもらえますか?また、「速記」スタイルを使用するのが適切または適用できるのはいつですか?

4

4 に答える 4

6

これは省略形ではなく、Javascript変数の使用にすぎません。たとえば、$container変数はおそらく次のように宣言されています。

var $container = $("#container");

保存されているため、要素(jQueryオブジェクト)は「キャッシュ」され、jQueryを停止せずに再利用でき、DOMを再トラバースして再度検索できます(毎回$("select")使用する必要があるため)。

変数名の先頭での使用は$、開発者がJavascript要素ではなくjQueryオブジェクトを保持していることを覚えておくと役立つ場合があります(から返されるものなど)document.getElementById("container");

init質問のメソッドがどこにあるかに応じて、この行myThing.$container = $container;はオブジェクトのプロパティ「$container」を$container変数の値として設定しているだけです。したがって、オブジェクトはおそらく次のようになります。

var myObject = {
    init: function () {
        // blah blah blah
    },

    $container: undefined
};

そして、initメソッドを実行した後、「$container」プロパティを何かに設定します。

于 2013-02-15T07:16:08.103 に答える
1

$containerこれは、変数が、たとえばネイティブDOMノードではなく、すでにラップされたjQueryオブジェクトであることを明確にするためです。

たとえば、次のように書くことができます。

var container  = document.getElementById('item');
var $container = jQuery(container); // or:
var $container = jQuery('#item');

要点はわかりましたか?

于 2013-02-15T07:16:13.027 に答える
1

基本的に、はい、それは速記です。

あなたが指摘した機能について:

init: function($container){
var myThing = this,
$input = $container.find('.fn_do_some_calc'),
$submit = $container.find('.fn_do_some_other_calc'),
defaultValue = parseInt($input.val(), 10);

$が含まれているので、jQueryオブジェクトを関数に渡すことがわかります。だからあなたがそれを呼ぶとき、あなたはこのようなことをするかもしれません:

init($('#theid'));

以下の行まで:

myThing.$container = $container;

これは、jQueryオブジェクトをmyThingオブジェクトの一部として保存しているだけです。もう1つの注意点として、次のようなことを行うことができ$var = 1、それは完全に有効です。ただし、通常は、jQueryオブジェクトを保存するためのリマインダーとして実行されます。

于 2013-02-15T07:29:30.230 に答える
0

jQueryを使用するためのショートカットメソッドはありません。

jQueryで変数を宣言するのは標準的な方法です。

つまり、$ container = $( "#container");

$containerはjqueryオブジェクトです。

理解:$はそれがjqueryオブジェクトであることを示しているので、必要に応じて操作を適用します。

于 2013-02-15T07:21:43.660 に答える