第一个工作原因是因为 – 就像它一样 – mootools中的$selector(document.id)返回实际的元素.这 – 在普通浏览器中 – 与document.getElementById()相同,元素对象公开其任何和所有属性/属性供您编辑.
不使用.set的问题是:
>当mootools 2.0 aka MILK被释放时,它将无法正常工作,因为它将像jQuery一样被包装并且选择器不会返回对象(mootools正在变成AMD,因此它不会修改本机类型 – 元素,数组,数字,字符串,函数(也许!) – 原型).
>你不能把它链起来.使用set,你可以:$(‘someid’).set(“html”,“loading …”).highlight();,例如.
> set重载 – 它可以通过传递对象来设置单个属性或倍数.例如,element.set({html:“hello”,href:“#”,events:boundObj});
>查看https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L936-942 – 您可以将数组作为参数传递,它将为您加入它,这样可以轻松使用多行字符串并确保在IE中的性能
编辑:BBT粉丝有一个单独的主题:框架是否应该阻止你/阻止你做破坏浏览器的事情?
>如果您愿意,可以通过更改setter来添加不允许的元素Element.Properties.html.set = function(){var tag = this.get(“tag”); …检查标签}; – 不是很棒吗?
mootools – 默认情况下 – 不会试图阻止你做愚蠢的狗屎[tm] – 这是你的责任:)尝试在IE中将元素的高度设置为负值,例如.应该Fx类阻止你这样做吗?不,请问安装员会阻止你吗?不会.持续检查的足迹,看你是不是破坏意味着它会减慢动作等性能关键情况下的一切.