0

もう 1 つの課題 - これは、「どうすればよいか」というよりも、コードをきれいに見せるためのものです。これがアイデアです。

<section id="projector" data-start-at="7">....</section>

JSで

$('#projector').projector_slider({'startFrom' : parseInt( REF TO DATA-START-AT )});

HTML 要素でカスタム関数を呼び出しています。単純。この関数には、INT で示される「startFrom」というオプションがあります。INT は、HTML 要素に添付された属性に格納されます。私が望むのは$('#projector')、DOM で再び検索する必要がないことです。

関数呼び出し内でプロジェクターへの参照を取得する方法はあり$(this).attr('data-start-at)ますか?

Obv要素をもう一度検索して直接アクセスすることでこれを解決できます.JSをクリーンアップしながら、新しい「this」参照トリックを学ぶことを期待して質問しています。

4

1 に答える 1

0

いいえ、できません。$('#projector')var に保存して使用する必要があります。

var projector = $('#projector');

projector.projector_slider({
    startFrom: parseInt(projector.data('start-at')),
});

.data()の代わりに [ ][data]を使用していることに注意してください.attr('data-*')。このdata()関数は jQuery によって作成され、data-*属性を操作するスマートな方法です。たとえば、持っていdata-first=trueて使用.data('first')するとブール値の「true」が取得され、持っているdata-children="['foo', 'bar']"場合は使用するとオブジェクトが取得されます.data('children')

于 2012-12-04T18:29:11.800 に答える