【问题标题】:Javascript Objects and the DOMJavascript 对象和 DOM
【发布时间】:2012-03-29 04:51:58
【问题描述】:

所以我们都知道您可以非常简单地创建 JavaScript 对象:

var myObject = new Object() ;
myObject.attribute = someValue ;
myObject.doSomething = someFunction ;

然后我们可以在 JavaScript 中使用该对象来使用标准技术来操作 DOM,例如:

document.getEmelemntByID("some ID").someAttribute = myObject.attribute;

现在这只是使用 JavaScript 的功能来查询 DOM 以找到一些元素,然后设置一个属性,一切都很好。你可以用 jQuery 和其他工具来做同样的事情,它们都是基于 JavaScript 的。

可以使用 DOM 提供的各种方法中的任何一种来调用 JavaScript 函数,例如 onClick、onChange 等。

所以我的问题是如何在 dom 中有一个 JavaScript 对象,比如 draw 方法、click 方法等等。这将允许 DOM 执行 draw 方法在 DOM 画布上呈现一些东西,然后在说单击或双击时调用该对象特定的方法?

【问题讨论】:

    标签: javascript html dom object


    【解决方案1】:

    DOM 树由 Javascript 对象组成,特别是不同种类的元素对象。您不能将其他对象放入 DOM 树中。

    DOM 元素将事件用于可自定义的操作,而不是方法。例如,当有人单击元素时,就会激活 click 事件。您将一个方法作为事件的事件处理程序连接起来,该方法将在事件激活时被调用。

    【讨论】:

      【解决方案2】:

      您不能在 DOM 中创建自己的对象类型并使用 javascript 创建新的浏览器级事件。您必须创建浏览器 DOM 已经支持的对象类型之一,并使用这些对象支持的事件。可以使用本机代码创建浏览器插件(如 Adob​​e Flash)来完成您所要求的一些功能,但我认为这不是您想要的,因为这些插件没有在 javascript 中实现并且需要下载.

      但是,您可以使用像 <div> 这样的通用对象,并以您想要的任何方式响应其上的点击事件。由于 div 没有默认的点击和绘图行为,它只是 DOM 中的一个占位符。然后,您可以将自己的对象嵌入其中或在其上设置属性以创建您想要的任何视觉外观。而且,您可以处理其上的各种事件(点击、按键等),以使其具有所需的行为。因此,您可以将像 <div> 这样的通用对象视为您可以构建自己的对象外观和行为的脚手架。

      甚至有一些方法可以在 DOM 对象周围放置一个 javascript 包装器,因此您与该对象的大部分交互似乎是与您的 javascript 对象而不是实际的 DOM 对象(这就是 jQuery 和 YUI 所做的)。但是,在底层,它仍然是一个真实的 DOM 对象,周围有你自己的 javascript 包装器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 2014-11-02
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多