【问题标题】:Loading HTML dynamically using JavaScript (class.js)使用 JavaScript (class.js) 动态加载 HTML
【发布时间】:2012-12-01 11:13:39
【问题描述】:

我正在构建一个包含一些 HTML 组件的应用程序。

用例:

我正在尝试实现与here 类似的东西。我想在单击菜单时调用 HTML 组件并应用一些操作,例如 drag and resize 等。

研究:

我被建议采用面向对象的方法来构建应用程序,因此在浏览 Google 时遇到了 class.js 用于 JavaScript 继承。

我浏览了最初的教程,但我不确定如何以及在哪里存储最初保存 HTML 组件结构的 HTML?

在参考应用程序中他们使用了backbone.js和require.js,但是我学习这些的时间有点短。

到目前为止我的工作:

我尝试的是创建一个文件 components.js 并为这样的组件创建外部 HTML 结构:

var textBox = '<div class="structure-textBox">
               <div class="editable">
                <p><span style="font-size:20px;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Text Box</strong></span></span></p>
                <ol>
      <li><span style="font-size:14px;">Double Click on the <strong>Text Box</strong> to Edit Text.</span></li>
      <li><span style="font-size:14px;">For easy use of the text editor click on the "i" (to the left of the x close) and watch a 30 sec video tutorial.</span></li>
    </ol>
    <p><span style="font-size:14px;"><span style="color:#7cba0c;">Enjoy web designing with GoBiggi.</span></span></p>
    <p><span style="font-size:14px;">Click on the <a href="#."><strong><u>Design Assistance</u></strong></a> link for further help.</span></p>
  </div>
</div>';

这是一个存储在 JavaScript 变量中的文本框,我想在用户单击菜单时添加它。但是如何使用 class.js 的继承模式来实现呢?

我创建了一个画布页面和组件菜单。现在我被困在获取 html 内容并将其显示在画布上的这一部分。

【问题讨论】:

  • DOM 注入与继承模式关系不大,您应该开始阅读有关操作 DOM 的内容,并可能考虑使用像 jQuery 这样的框架。
  • 试试 KnockoutJS。它易于设置和开始,您无需摆弄 HTML。

标签: javascript dom-events javascript-framework


【解决方案1】:

我看不出你问的与继承有什么关系。

有几种简单的方法可以使用 JavaScript 在您的网页上添加内容。

例如,如果您的页面上有以下内容 &lt;div id='target'&gt;&lt;/div&gt;,您可以这样写:

var textBox = '<div class="structure-textBox">
               <div class="editable">
                <p><span style="font-size:20px;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Text Box</strong></span></span></p>
                <ol>
      <li><span style="font-size:14px;">Double Click on the <strong>Text Box</strong> to Edit Text.</span></li>
      <li><span style="font-size:14px;">For easy use of the text editor click on the "i" (to the left of the x close) and watch a 30 sec video tutorial.</span></li>
    </ol>
    <p><span style="font-size:14px;"><span style="color:#7cba0c;">Enjoy web designing with GoBiggi.</span></span></p>
    <p><span style="font-size:14px;">Click on the <a href="#."><strong><u>Design Assistance</u></strong></a> link for further help.</span></p>
  </div>
    </div>';
document.getElementById('target').innerHTML = textBox;

为了获得最佳效果,我建议学习使用像 jQuery 这样的库。这些工具旨在让操作页面的 HTML 变得更加容易。

【讨论】:

  • 感谢输入我了解 jQuery 和 JavaScript,但是我尝试构建的系统很复杂。所以我想将这些部分分成不同的 JavaScript 类(函数)。我也会处理同一组件的多个实例,因此保持组件唯一性的动态 id 会出现。我需要一些关于如何处理场景的帮助
  • 对不起,如果问题不够清楚!!!但为了说明清楚,我添加了对类似网站的引用。
  • 只要说到继承,你知道JavaScript的“原型”继承吗?
  • 目前我对 class.js 一无所知。然而,我想告诉你我是如何在我的应用程序中处理 HTML 对象的。通常,如果我的应用程序中有一个我只想在某个时间显示的对象,我会将那个对象的标记放在不显示的网页部分中。当我想要它显示时,我将它移动到页面的显示部分。这样,我的 JavaScript 中就没有 HTML 代码。 (它提供了关注点的清晰分离。为了使其更清晰,我使用 ASP.net MVC)
  • 关于原型继承的内容不多,但在我进行研究时读过它。你的意思是你使用'display:block'和'none'来隐藏显示元素吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多