0

私はこのようなことをするのにうんざりしています:

this.slides = {$('#Page_1') : null,
               $('#Page_2') : null,
               $('#Page_3') : null};

なぜこれを行うのか、またはどのような利点がありますか?
クラス全体でjqueryセレクターを使用したくありません。


解決策:

this.slides = [{"key": $('#Page_1'), "value": null},
               {"key": $('#Page_2'), "value": null},
               {"key": $('#Page_3'), "value": null}];

制限:

このアプローチの問題は、これにアプローチするたびにオブジェクト全体を反復処理する必要があることです。id を識別子として使用する必要があります。これははるかに効率的です。– クリストフ

4

4 に答える 4

3

いいえ、キーはリテラルでなければなりません。オブジェクトのプロパティを使用できます。

于 2012-10-16T16:51:52.990 に答える
2

処理が this.slides コンテンツに基づいている場合、id を key として使用してみませんか? それらは「一意」であることも意図されているため、そうしないとDOMが壊れます。だから私は次のようなものを提案します

this.slides = {'#Page_1':null,'#Page_2':null,'#Page_3':null};

そして、this.slides の処理の非常に軽い変更

于 2012-10-16T16:55:25.803 に答える
1

オブジェクトをキーとして使用することはできず、プレーンリテラルのみを使用できます。私はこのような構造を提案します:

this.slides = { 'Page_1' : $('#Page_1'),
                'Page_2' : $('#Page_2')
                'Page_3' : $('#Page_3')};

このようにしてid、要素のを使用して、対応するjQuery-Objectに簡単にアクセスできます。(キーの引用符は省略できます。)

slides.Page_1
// or
slides['Page_1']

これで、対応するjQueryオブジェクトが得られます。

于 2012-10-16T17:11:18.500 に答える
1

次のような構造を試してみませんか。

this.slides = [{"key": $('#Page_1'), "value": null},
               etc.];

それとも、オブジェクトを使用する必要がなくなりますか?

もちろん、それを繰り返すときは、次のようなロジックを使用する必要があります。

for (var i = 0; i < this.slides.length; i++) {
    var key = this.slides[i].key;
    var value = this.slides[i].value;
}
于 2012-10-16T16:51:39.700 に答える