浏览 5255 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-14
(这些不足如果在新版本里已经修正,我会标出.svn上的版本我不做考虑) 1 each方法无法break. 例子: 找出一个数组中的第一个偶数. var myarr=[1,2,3,15,5,21,22]; var rs=0; myarr.each(function(val,idx){ if (val%2 ==0 ) { rs=val; return ; //return不是我想要的,我想在这里方便快捷的结束each,咋办? } }); 目前我想到的是 使用 throw抛出一个异常,不知道各位还有更好的解决方案没. (当然修改moo源代码可以得到更好的方案) 2 Element对象没有setValue方法. 这个比较不能忍啊 呵呵,想设置页面表单域的值都要自己想办法,不理解为啥! 3 Json.Remote对象里的hardcode. 见代码里的这句大家就明白了: send: function(obj){ return this.parent(this.url, 'json=' + Json.toString(obj)); } 我想用这个方法,那服务端只能接受名为json的json序列化字符串. 太不灵活了. 4 Json.Remote的send是否应该考虑支持发送多个json串呢? 5. Class 里的一个bug var Class = function(properties){ var klass = function(){ return (arguments[0] !== null && this.initialize && $type(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this; }; $extend(klass, this); klass.prototype = properties; klass.constructor = Class; return klass; }; 如果 我要传的第一个参数就是null时 那么整个类机制将失效 例如 一个类的构造方法有两个参数 ,而他又有一个子类 子类也是如此 我在创建子类的时候,如果构造方法的第一个参数我就是要传null, 那么在子类里调用父类的方法将失败. 修改方法 将 null 换成其他的特殊值. 在新版本moo里 用的是 moo定义的 $empty arguments[0] !== $empty 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-14
fins 写道 这个帖子我会慢慢总结一些不足,欢迎大家补充,并即时更正我的错误.
2 Element对象没有setValue方法. 这个比较不能忍啊 呵呵,想设置页面表单域的值都要自己想办法,不理解为啥! setProperty 应该可以吧, 它就是做这些事的。 |
|
返回顶楼 | |
发表时间:2007-09-14
Array.prototype.each=function(fn){
for ( var i = 0, ol = this.length, val = this[0]; i < ol && fn.call(val,i,val) !== false; val = this[++i] ) {} } function aa(index,val){ if(val>2) return false; else alert(val) } [1,2,3].each(aa); |
|
返回顶楼 | |
发表时间:2007-09-14
不修改源码很麻烦啊!
|
|
返回顶楼 | |
发表时间:2007-09-14
2 Element对象没有setValue方法.
确实是的,在Element.Form中,也只是提供了getValue方法 1 关于each,没有break也是可以忍受的啊,毕竟each还不是关键字啊 |
|
返回顶楼 | |
发表时间:2007-09-28
又发现一个重大瑕疵
|
|
返回顶楼 | |
发表时间:2007-10-06
zhw 写道 fins 写道 这个帖子我会慢慢总结一些不足,欢迎大家补充,并即时更正我的错误.
2 Element对象没有setValue方法. 这个比较不能忍啊 呵呵,想设置页面表单域的值都要自己想办法,不理解为啥! setProperty 应该可以吧, 它就是做这些事的。 非常同意~! Element.setProperty('value','value')完全可以 可能是mootools疏忽或者不想做重复的事情 |
|
返回顶楼 | |
发表时间:2007-12-18
请问用prototype 可以实现
var obj=$("mydiv"); obj.update("<span>beforeObj</span>"); obj.insert("<span>name</span><span>id</span><span>password</span>"); 而mootools必须 var obj=$("mydiv"); obj.setHTML("<span>beforeObj</span>"); var a=new Element('span'); a.setText("name"); a.injectInside(obj); ............ 有没有更好的方法? |
|
返回顶楼 | |
发表时间:2008-06-25
mootools1.1确实没有setValue,如果有的话,我相信用setProperty是没法替代的,它会考虑到input select span div 等很多可以插入值的元素,但是各个不一样,而且增加这么一个函数比之我们直接用.value或者.setHTML成本要大得多,对了,如果有的话,估计还会跟setHTML重复,完全没必要我认为,如果仅仅是相当于setProperty('value',value)的话,那为什么不直接.value呢
|
|
返回顶楼 | |