我正在使用 Win8 网格视图模板来显示来自新闻站点的信息。在下部菜单栏中,我实现了一个关闭标题的功能,因此只有图片仍然可见。
这个函数在一个“global.js”文件中,该文件包含在“default.html”中,所以它在任何地方都可用,它看起来像这样:
//function to turn titles off and on
function titleToggle() {
var titles = document.getElementsByClassName("item-overlay");
for (var i = 0; i < titles.length; i++) {
if (Global.titlesAreOn) {
titles[i].style.display = "none";
}
else {
titles[i].style.display = "";
}
}
Global.titlesAreOn = !Global.titlesAreOn;
};
因此,当我从菜单栏中调用此函数时,它适用于第一个项目,但是当我滚动 groupedItems 视图(hubview)的末尾时,标题仍然存在。当我然后滚动回到开头时,标题也再次出现。
我还从ready()
“groupedItems.js”的函数中调用 titleToggle 函数来检查是否根据全局变量显示标题。当我这样做时(每当我回到中心页面时),它会一直正常工作,就像预期的那样。
ui.Pages.define("/pages/groupedItems/groupedItems.html", {
navigateToGroup: function (key) {
nav.navigate("/pages/groupDetail/groupDetail.html", { groupKey: key });
},
ready: function (element, options) {
appbar.winControl.disabled = false;
appbar.winControl.hideCommands(["fontSizeBt"]);
appbar.winControl.showCommands(["titleToggle"]);
if (Global.titlesAreOn == false) {
Global.titlesAreOn = true;
Global.titleToggle();
}
我制作了一个简短的视频来展示这个问题,因为它有点难以解释 --> http://youtu.be/h4FpQf1fRBY我希望你明白吗?
为什么当我从 ready() 函数调用它时它会起作用?有人有想法吗?是为了获得更好的性能而进行的某种自动项目缓存吗?这怎么能解决?
问候和感谢!