0

単体テストの目的で、jQuery & jPlayer オブジェクトのsrcオブジェクト プロパティを確認する必要があります。残念ながら、DOM 経由でプロパティにアクセスすることはできません。

参照用の初期化コードは次のとおりです。

$("#jquery_jplayer_1").jPlayer({
    ready: function (event) {
        $(this).jPlayer("setMedia", {
        mp3: "mysound.mp3"
        }).jPlayer("play"));
    }
(...)

Firebug は、私のプロパティが で利用可能であると通知します:

jPlayer.status.src

しかし、次のコードは undefined を返します。

$("#jquery_jplayer_1").jPlayer().status.src

これも未定義を返します。

$("#jquery_jplayer_1").jPlayer.status.src

src値を呼び出して取得するための正しいパス コマンドは何でしょうか?

ありがとう、

4

2 に答える 2

3

記憶が正しければ、次のようなものだと思います...

$("#jquery_jplayer_1").data("jPlayer").status.src
于 2012-10-09T11:07:49.400 に答える
0

関数jPlayerが返すオブジェクトのプロパティにアクセスしようとしています。ただし、投稿したfirebugの出力には、戻り値のプロパティではなく、関数自体のプロパティであると記載されています。jPlayerは、関数であると同時にプロパティを持つオブジェクトでもあります。JSのすべての関数は、他のオブジェクトと同じようにプロパティを持つことができるオブジェクトです。

jPlayer.status.src

jPlayerによって識別される関数/オブジェクトのステータスプロパティのsrcプロパティにアクセスしますが、

jPlayer().status.src

jPlayerによって識別される関数を呼び出すことによって返されるオブジェクトのステータスプロパティのsrcプロパティにアクセスします

コメントによると

$(...)。jPlayer

はjQueryセレクター(jPlayerプラグインを介して接続されたもの)のプロパティであり、そのプロパティは識別子によって識別されるものと同じである必要はありませんjPlayer。識別子は実際にはグローバルオブジェクトのjPlayerプロパティであるため、同じである場合とそうでない場合があります。あなたの場合、それらは同じではないか、firebugからの行が正しくない/不完全です

于 2012-10-09T11:13:17.080 に答える