我正在开发一个小型 HTML/JavaScript 应用程序,用户可以在其中浏览不同的内容而无需刷新页面。我通过在用户浏览应用程序时显示和隐藏 div 来将 div 用作“页面”。两页之间会出现一个小动画(如淡出或滑动)。当动画完成并且“页面”可见时,触发触发器。
每个页面在触发时都会执行自己的行为(例如播放视频/动画/显示一些文本)。每个页面(div)都有自己的 JavaScript 类链接到它。JavaScript 类的类名存储在名为 data-pageClass 的数据属性中:
<div id="page1" class="pn-page intro" data-pageClass="IntroPage">
Page 1: introduction text
</div>
<div id="page2" class="pn-page page2" data-pageClass="VideoPage">
Page 2: playing a video here
</div>
处理导航的类通过循环遍历 html 结构并使用 data 属性来识别要创建的类来创建页面的类。我使用StackOverflow 上这个问题中描述的 'stringToFunction' 函数
循环代码:
$("#pages .pn-page").each(function (i, el) {
var PageClass = stringToFunction(el.getAttribute("data-pageClass"));
var newPage = new PageClass(el);
_this.pages.push(newPage)
});
为简单起见,我省略了所有其他代码。不清楚时请告诉我。
所以我的问题是,以这种方式“动态”创建对象是否是不好的做法。我认为将 div 链接到自定义 javascript 类(有点像 DOM)非常有用。