作家
登录

Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0

作者: 来源:www.28hudong.com 2013-03-30 03:08:27 阅读 我要评论

batch: function(el, method, o, override) { // 让 el 始终为 HTMLElement el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); if (!el || !method) { return false; } // 确定返回的对象 var scope = (override) ? o : window; // 看起来是个 HTMLElement 或者不是 Array if (el.tagName || el.length === undefined) { return method.call(scope, el, o); } var collection = []; for (var i = 0, len = el.length; i < len; ++i) { collection[collection.length] = method.call(scope, el[i], o); } return collection; },小马补充 batch 是 YUI Dom 库的核心之一。它最大的意义在于,它让 Dom 库的其他大多方法 的第一个参数可以是一个 id / 元素对象 或 一组 id/元素对象,减少了循环的使用。在这里可以找到 call 与 apply 的用法。在了解了 batch 以后,下来看 YUI.util.Dom 是怎么使用这一方法的,一口气看两个函数 getStyle: function(el, property) { // toCamel 函数后面介绍 property = toCamel(property); // 获取节点的样式 var f = function(element) { return getStyle(element, property); }; return Y.Dom.batch(el, f, Y.Dom, true); },setStyle: function(el, property, val) { property = toCamel(property); // 设置节点的样式 var f = function(element) { setStyle(element, property, val); }; Y.Dom.batch(el, f, Y.Dom, true); },有关这两个函数的具体用法,可以看下相关的文档。其实从参数上就很容易理解怎么使用。看上面的两个函数有利于理解 YAHOO.util.Dom.batch 的调用方式。 接下来,粗略看下 getXY getXY: function(el) { var f = function(el) { // 确定元素是否“肉眼可见” if ( (el.parentNode === null || el.offsetParent === null || this.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) { return false; } return getXY(el); }; return Y.Dom.batch(el, f, Y.Dom, true); },getX 与 getY 方法也是调用此函数,只是获取返回值的数组元素不一样。由于浏览器的兼容问题,提供给用户的 YAHOO.util.Dom.getXY 也仅仅是判断变量以后,再扔给最为复杂的内部 getXY 函数。 OK,留下太多的“悬念”了,下一期着重将它们解决。

  推荐阅读

  Meta 标签生成器

input{height:22px; line-height:22px}Meta 标签生成器Title:(主题) Author:(作者) Subject:(主题) Description:(描述) Keywords:(关键字) Generator:(编辑器) Language:(语言) Expires:(>>>详细阅读


本文标题:Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0

地址:http://www.17bianji.com/kaifa2/JS/29791.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)