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

API 文档 - dom 模块 #51

Open
Open

Description

@cssmagic

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

Activity

  1. hax commented on Jul 8, 2015

    @hax

    is$Element的使用场景是?

  2. hax commented on Jul 8, 2015

    @hax

    可以加上$root和$head。

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

  3. cssmagic commented on Jul 8, 2015

    @cssmagic
    MemberAuthor

    is$Element的使用场景是?

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

  4. cssmagic commented on Jul 8, 2015

    @cssmagic
    MemberAuthor

    可以加上$root和$head。

    $root 貌似就是 $doc?

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

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

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

  5. hax commented on Jul 9, 2015

    @hax

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

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

  6. cssmagic commented on Jul 10, 2015

    @cssmagic
    MemberAuthor

    $root是$(document.documentElement)

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

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

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

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

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

  7. hax commented on Jul 10, 2015

    @hax

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

  8. cssmagic commented on Jul 11, 2015

    @cssmagic
    MemberAuthor

    我错了……

    我会改成这样:

    $doc = $(document)
    $root = $(document.documentElement)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions