Skip to content
This repository has been archived by the owner on Aug 24, 2022. It is now read-only.

API 文档 - dom 模块 #51

Open
cssmagic opened this issue Mar 31, 2015 · 8 comments
Open

API 文档 - dom 模块 #51

cssmagic opened this issue Mar 31, 2015 · 8 comments
Labels

Comments

@cssmagic
Copy link
Member

API 文档 - dom 模块

JavaScript 变量

为减少业务层对常用 DOM 元素的重复获取和包装,dom 模块预先缓存了这些元素的 Zepto 包装对象。在业务层可以直接使用。

_.dom.$win

window 对象的 Zepto 包装对象。

示例

监听 resize 事件:

_.dom.$win.on('resize', function (ev) {
    //...
})

_.dom.$doc

document.documentElement 对象(即 <html> 元素)的 Zepto 包装对象。

_.dom.$body

document.body 对象(即 <body> 元素)的 Zepto 包装对象。

注意事项

为确保对 document.body 对象的正确获取,加载 Underscore.ext 的脚本标签须放置在页面的 <body> 标签内。当然,根据前端性能的最佳实践,所有外链脚本也确实应该放置在页面的最底部:

<html>
<head>...</head>
<body>
    ...
    <script src="..."></script>
</body>
</html>

JavaScript 接口

_.dom.is$Element(obj)

判断是否为 Zepto 包装对象(或 Zepto 集合)。

如果外部环境没有加载 Zepto 但有 jQuery,则理论上此方法也可以判断 jQuery 包装对象(或 jQuery 集合)。

参数

  • obj -- 任意类型。需要判断的对象。

返回值

布尔值。判断结果。

示例

_.dom.is$Element(_.dom.$win)  // => true
@cssmagic cssmagic added the doc label Mar 31, 2015
@hax
Copy link

hax commented Jul 8, 2015

is$Element的使用场景是?

@hax
Copy link

hax commented Jul 8, 2015

可以加上$root和$head。

但是有个问题这些东西为什么不是直接变成 $.body,$.head,$.win 上,这样似乎更好用点。

@cssmagic
Copy link
Member Author

cssmagic commented Jul 8, 2015

is$Element的使用场景是?

内部会用到。但业务场景一时想不起来了。

@cssmagic
Copy link
Member Author

cssmagic commented Jul 8, 2015

可以加上$root和$head。

$root 貌似就是 $doc

$head 在业务中不常用,所以没有加。

但是有个问题这些东西为什么不是直接变成 $.body,$.head,$.win 上,这样似乎更好用点。

只是想统一挂载到 _ 这个命名空间上,然后所有接口的形式保持一致(_.{module}.{api})。

@hax
Copy link

hax commented Jul 9, 2015

$root是$(document.documentElement)
$head偶尔会用,插个样式表、脚本什么的

我想既然是$xxx,前提是有zepto/jquery,那么放在$的命名空间上更合理些吧。这样也不需要_的存在。但也许不好属于这个repo了。

@cssmagic
Copy link
Member Author

$root是$(document.documentElement)

那跟现在的 _.dom.$doc 是一样的。

$head偶尔会用,插个样式表、脚本什么的

如果做业务开发的同学有这方面需求,会考虑提供一个高层次的接口来做这个,尽量不让业务层自己做这些事。(BTW,插脚本可以用 Zepto/jQuery 的 $.getScript()。)

我想既然是$xxx,前提是有zepto/jquery,那么放在$的命名空间上更合理些吧。这样也不需要 _ 的存在。但也许不好属于这个repo了。

目前这样的命名(_.dom.$xxx)单纯是为了接口的一致性考虑。

@hax
Copy link

hax commented Jul 10, 2015

我以为$doc$(document) ...

@cssmagic
Copy link
Member Author

我错了……

我会改成这样:

$doc = $(document)
$root = $(document.documentElement)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants