作者HuangJC (吹笛牧童)
看板Ajax
标题Re: [问题] 请问相容性问题( prototype )
时间Mon Jul 20 14:00:31 2009
暂时我得到这个结论
<script type="text/javascript" src="prototype.js"></script>
<table>
<tr id='e1' class='test'>
<td>
e1
</td>
</tr>
<tr id='e2' class='test'>
<td>
e2
</td>
</tr>
</table>
<script type="text/javascript">
onload = function () {
all = $$('.test');
//all.invoke('hide');
$A(all).invoke('hide');
//[e1,e2].invoke('hide');
[$('e1'),$('e2')].invoke('hide');
}
</script>
不要用 all,要用 $A(all)
不要用 e1,要用 $('e1')
如果说用 e1 一定是错的
但奇怪的是我现在都会成功了
是 cache 吗? 我按 ctrl-f5 好几次了,始终无法重制错误
所以我无法标定问题,只能'看程式,凭逻辑'
;;
就我看程式,$() 其实是一个函式
它会 extend 一个物件所有拥有的 method
所以不用它,e1 就不拥有 hide; e1.hide 为空的
但这样我就无法解释不用它时 chrome 为什麽会动
以及目前整个程式为什麽会动
另外 $A 也是类似的状况
似乎我用
$A(e1,e2,e3) 也可以
(我根本无法确认,毕竟现在会动不代表永远会动,ctrl-f5 也没差别)
以上,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16