easyui 的dialog 的href加载,子页面的document ready事件无效!

http://www.easyui.info/archives/343.html

所以,最好的方法就是放在onload事件中进行初始化操作,然而,这样,代码就就比较乱了,B页面的初始化代码放在了A页面


---------------------------------------

然而,在onload执行的时候,easyui可能并没有渲染完毕,所以,要么加上延时,要么就用iframe

结论归纳:

分析到这里基本就清晰了,所以,最后href目标页面中的javascript脚本的注意事项有以下几点:

script标签必须放在body内

script标签一定要放在body标签内部,放在body标签外面的所有script标签都会被忽略,或者直接省略掉html,head,body这几个标签页可以。

script的位置无关性

script标签包含的脚本不管是放在DOM最前面,还是中间,还是后面,从执行效果上讲,都好比按顺序地放在了DOM的最后面。因为是先追加不带script标签的DOM,后处理分离出来的script。这也是放在某个DIV前面的脚本可以通过这个DIV的ID属性访问到该DIV的原因,这一点跟正常页面的加载顺序是有区别的。

 失去作用的document.ready

比如目标页面的内容如下:

  1. <script type="text/javascript">   
  2.     $(function(){   
  3.         alert("这里先执行");   
  4.     });   
  5.     alert("这里后执行");   
  6. </script>  

要是在普通页面内,document.ready里面的脚本肯定是在后面执行的,当其作为panel的href目标页面的时候ready是没有任何效果的,因为这时候页面早就加载完成的,ajax当然不在ready检测的范围内。

不要操作不存在的组件实例

目标页面里面的javascript代码不应该存在直接利用easyui组件实例对象的操作,比如$("#panelId").panel('setTitle','shit'),除非你在次之前调用了$("#panelId").panel({...});来生成panel组件的对象实例。

后知后觉的easyui parser

如果data里面包含easyui支持的组件class,那么在$.parser.parse(_190)代码执行完后将会完成对组件的解析,所以最安全的方式是在onLoad回调中操作easyui组件的实力对象。

不要重复构造easyui组件

还需要注意的是,不要重复构造easyui组件了,如果在data内部通过脚本构造了某easyui组件,然后$.parser.parse检索到该组件样式,又构造一次,这纯粹是浪费,而且可能造成两次加载。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值