|
深夜发文,先感慨一把。X5真是越用越喜欢!!!
从学习X5至今,已经6个年头了。这期间一真在使用X5平台做各种开发。越用越喜欢。都用了这么长时间了,才发现里面原来还有很多自己没有用过的东西呢。利用周末,一顿研究。
分享一下刚才的发现。
情景描述:
在一个W页面中,可以加入多个messageDialog组件 ,可以为每个组件设置弹出时显示的title message之类的属性,也可以选择弹出窗口的类型 如:OK OKCANCLE YesNo 等。分别为每个组件指定onOk 、onYes 、 onClose等事件。我想这是大家通常的做法,因为我一直也是这么做的。
其实深入想一下,每个组件到了浏览器端都会生成一大堆代码,并且还要注入好多事件,这其它是无形给浏览器增加了很大的负担,如果我们只是追求开发效率,这么做是最正确不过的了。反之要是为用户考虑,并且希望提升浏览器效率的话,最好就是使用一个messageDialog组件。
其实一个messageDialog,如果光是弹出一个ok类型的提示的话,没有问题的,可以在show的时候通过指定参数,实现修改title,mesaage等信息。如果继续把需求复杂化,需要弹出两次messageDialog,并且要求类型为YesNo ,需要回答两个不同的问题。问1:你是男生吗?点yes时,答:【师哥你好】问2:你是女生吗?点yes时,答:【美女你好】
组件提供了接管onYes onNo之类的事件扩展接口,但在接口里只能通过 event.button这个变量判断用户点了yes还是no。
如何判断用户是在询问男生的窗口中点了yes,还是在询问女生的窗口中点了yes呢?
关键点来了,其实真的很简单,聪明的同学别笑话我哈。 ****给messageDialog组件增加一个flag属性, 在每次show出窗口之前,改变flag的值。在事件中通过this.flag来获取这个属性。判断属性值,就可以了。
是不是非常简单?
发现问题,提出问题,找出方案,最重要的是要到在论坛里分享。jishuang老师,你说是不是?
|
|