私はこれをしばらく試していましたが、動作させることができません。
私はオブジェクトを作成しています:
(function( $, window) {
$.widget("mobile.multiview",$.mobile.widget, {
options: {
siteMap: []
}
});
}) (jQuery,this);
そして、次のように文字列とイベントデータオブジェクトを入力します。
var _mainEventBindings = function () {
var self = this;
$(document).on("some-event", function(e, data) {
self.options.siteMap.push( { type: "external", data: data } );
});
}
これは問題なく動作します。ここで、ループ内の保存されたイベントdata.toPageプロパティをチェックして、そこに保存されている文字列が現在の文字列と一致するかどうかを確認する必要があるため、2回追加することはありません。
ただし、次のように機能させることはできません。
var j = self.options.siteMap.length;
if (j == 0 ){
alert("added entry");
self.options.siteMap.push( { type: "external", data: data } );
} else {
for ( i = 0; i <= j; i++) {
console.log("run "+i);
console.log( self.options.siteMap);
console.log( self.options.siteMap[i]);
if ( data.toPage != self.options.siteMap[i]['data.toPage'] ){
self.options.siteMap.push( { type: "external", data: data } );
}
}
}
したがって、基本的には、オブジェクトに「一意の」レコードのみが含まれていることを確認したいと思います。ただし、オブジェクトに格納されているものにアクセスできないように見えるため、上記は機能しません。Firebugは、エラーやコンソールを表示することすらしません...
質問:
サイトマップオブジェクトの2番目のパラメータオブジェクトのパラメータにアクセスするにはどうすればよいですか...?
手伝ってくれてありがとう!