当用户浏览我的应用程序时,我正在填充站点地图数组。
但是我填充站点地图的逻辑是有缺陷的。这是我正在做的事情:
var siteMap = [],
j = siteMap.length;
$(document).on( "pagebeforechange", function( e, data ) {
if (j == 0 ){
// add cause sitemap has no elements
siteMap.push( { type: "external", data: data });
} else {
// loop through the sitemap object
for ( var i = 0; i < j; i++) {
// check if element is already stored
if ( data.toPage == self.options.siteMap[i].data.toPage ){
break;
}
self.options.siteMap.push( { type: "external", data: data } );
}
}
});
问题是我的休息没有按预期工作。我想遍历站点地图并将data.toPage(类似 /some/page.html 的字符串)与我已经存储的内容进行比较。如果我找到匹配项,则循环应该在不向站点地图推送新元素的情况下结束。但是,现在我正在循环,如果在循环位置(1)处找不到元素,则不会触发中断,并且我在每个循环上添加一个条目,直到条目匹配。
问题:
我怎样才能修复循环,所以如果不存在匹配项,它只会添加一个条目?
感谢帮助!
编辑:
这就是我现在拥有的:
(function( $, window) {
$.widget("mobile.multiview",$.mobile.widget, {
options: {
siteMap = {};
},
eventBindings: function() {
$(document).on( "pagebeforechange", function( e, data ) {
var self = this;
if (!self.options.siteMap[data.toPage]){
self.options.siteMap[data.toPage] = { type: "external", data: data };
}
});
}
}) (jQuery,this);