aui/artDialog

v6问题集

xuexb opened this issue · 43 comments

已知的实用方法没了

  1. time 定时
  2. onshow 代替 initialize 有问题,如果有id存在第二次执行还会走 onshow 但以前的 initialize 却不执行
  3. ie7-- button不会居中,会居右
  4. sea给大部分人群造成困扰
  5. 是否考虑扩展一个 关闭开关 的方法, 很多场景下会让某个弹出层不能关闭,操作某块后可关闭,以前版本可通过 art.config.beforeunload = function(){return false;}, 在可关闭时用 art.config.beforeunload = null; 但v6发现重构后同样思路不可用(可能能力有限)
  6. v6的结构感觉没有v5好,v5分的很清,很容易明白,v6的架子有点不懂了

优点:

  1. 提示层很实用
  2. 支持模板扩展不错(+skin)

ie6中小三角有问题,因 solid
8px solid transparent -> 8px dashed transparent 问题解决

什么年代,还ie6

还有, 我现在不要取消按钮,想让层关闭不了都实现不了。。。还是用v5吧, 但又不值得那个提示层, 纠结

有title就有关闭按钮,用quick close随便点击也能关闭。

我有个loading层,要默认下是有title,但点关闭是不让关,等我ajax完后才能关,现在满 足不了了, 我自己改吧。。。

那还不简单,loading的时候,title 为 false,接收到内容后,再设置title。

你理解错了,不是title的问题,是在某场景下不能关层(esc,关闭按钮都不能关),且在后续后可设置能关。。以前的art.config.beforeunload可以满足

哦,你的意思是想要屏蔽一切的关闭层行为啊?

还有在没有遮罩层的时候 focus,blur 操作会严重影响用户操作,如: 表单报错,弹出个请输入用户名,再聚焦到文本框,而用dialog弹出来 焦点就乱了,且在自动关闭后 焦点又放给文本框, 感觉有点不好,是否能只有在有遮罩的时候操作用户的焦点呢。。。 就目前情况v6只适合做 alert了。。。

aui commented

回复上条:

给对话框附加焦点是为了照顾盲人用户,否则弹出层几乎无法在读屏器下使用。目前的机制:浮层弹出,焦点附到弹出层上;浮层关闭,焦点恢复到原来在页面中的位置。

那就弄个 close回调就好了

话说v6的 onbeforeremove,onremove,onclose 你们都常用么?感觉v5的beforeunload,initialize挺帅气啊

我了个去,我貌似遇到lz那种需求。
点击提交按钮后,然后弹出 dialog 的loading,此时loading不能被关闭(esc也不能),所以设置 return false; 在关闭回调函数中。load 到数据后,此时可以被关闭。但问题就在这里了,同一个 dialog,所以load后只能用方法接口来配置(总不能重新生成一个dialog吧),但方法接口并没有 cancel ……
这有啥方法解决呢?

自己扩展吧, 扩展个是否可关闭的开关,art.callbacks['cancel']=returnFalse 就行了, 还有那个 onshow方法,我也得改,某场景下dialog是有id的,而再 .show()显示,那个 onshow就会重复。。。

蛋疼= =
ls有扩展的代码吗?我想现成的直接套上。。。

@kmvan 你一直让我以为是个妹子,直到今天我感觉天空好黑。。。
自己扩展呗, dialog还是很好用的, 其实v6我只是相中那个tips了,v5的架子清楚,用v5用惯了。。。

我的言行这么有女人味么- -

@kmvan 好吧,我又发现了zIndex的问题。。。 我已经放弃v6了,打算还用v5,tips就用 follow

z-index有啥问题?

aui commented

@xuexb 我最近比较忙,没有跟进问题,抱歉。问题先记录,放假后逐一回复

@aui 我总结下这几天使用中的问题/疑惑:
1, sea应该会给大多数人带来困扰,为何不再抽出一份不用模块加载的呢?
2, buttons在ie7--有问题,当然自己可以修复下
3, 可能是为了满足大场景的需求,现在方法很多,但在实际场景下用的不是很全,v5的init,befo..不错,可能某场景下要完成: 出现加载提示,但不能关闭,(即使esc也不行),然后在成功后可关闭...(感觉弹层初化后,关闭前的两个方法很实用 @kmvan 你说呢?)
4, 焦点的问题,比如一个表单场景下,我用dialog提示错误,然后我会手动设置聚焦到文本框,但dialog会把我的焦点夺走,知道您是为了考虑盲人用户,但这样会给大多数用户带来困扰啊,是否考虑给个设置呢?
5, 为何time这个参数没了?感觉time还是蛮实用的啊

最后赞个

@xuexb
1.我感觉用 seajs 来加载,这个是发展的趋势,应该没啥困扰吧
2.ie7下的问题不清楚,我的项目不用兼容ie8-
3.确实有些场景要用到 loading,有即使按 esc 也不能关闭的需求。虽然这个可以自行扩展
4.这个我是按照回调的内容接口来判断是否聚焦回input的。dialog自动聚焦后,再手动聚焦回input就可以了。
5.time的话,现在我是用setTimeout来设置,这个问题到不大,感觉差不多。
老大的东西确实给力,省了许多工作内容!

回复 @kmvan

  1. 用sea确实是很好,且也是趋势,但在实际应用中是否能用到呢?据了解artDialog的用户群有60%都是入门级用户,试想一下,你让他们为了一个模块把整个项目都模块化下可能性大不?(ps:我们项目就不让用,即使你再说好也不行,就连concat合并都不能用。。。/shuai)
  2. 不解释
  3. 感觉v6的诸多事件很多都用不到(当然qzoneV8里应该会乃至),但我感觉那个 ”不能关闭“ 的需求也是挺重要。
  4. 要用tip来提示,焦点真心不顺,你那样逻辑代码上再各种判断感觉有点那个啥
  5. ...
    如果照你这样整会扩展许多,但偶能力有限,看不懂v6,但这些东西v5已经做到了啊,我感觉应该整个v6的调查卷,问问群众的心声,你说呢

把CMD模块改成 独立的jq插件,也不难。不过seajs的combo功能,我从1.3版本用到2.1,还是没搞懂怎么合并,太难了。

@kmvan 好帅气,俺不会,我是模块开发,但依赖是硬伤,最后用minify合并下

不会用,不能像V5版本那样直接在标签里引入后,就可以很方便的写JS,看了V6版本的例子,感觉好复杂,照着例子,我在ASP.NET页面,没试成功过,伤心 -_-||||

aui commented

焦点问题在6.0.1已经修复,不再会抢夺开发者主动设置的焦点;其他问题后续版本再完善

不得不承认v6的事件管理方便,赞个.

V6 artDialog取消了打开iframe 使用全屏的功能吗?具体看描述#88

求大侠指点怎么并存jquery啊

aui commented

v6.0.2 已经提供合并后的版本,同时文档也相应更新

沙发!

窗口最大化100%的问题如何解决,以前就版本都有的 o(╯□╰)o

估计要用 js 获取窗口长宽,然后……

aui commented

不再支持窗口最大化的特性

bad news.

aui commented

第5条在v6.0.2中已经解决,多了一个cancelDisplay配置,不会出现取消按钮,却依然可以使用cancel回调来禁止关闭

dialog({
    title: '提示',
    content: '这是一个禁止关闭的对话框,并且没有取消按钮',
    cancel: function () {
        alert('禁止关闭');
        return false;
    },
    cancelDisplay: false
}).show();

模态窗口限制了Tab键只能在Dialog内切换焦点,但是Shift-Tab却未作限制,仍能将焦点切换到遮罩下面。

aui commented

对,这是一个已知问题,需要靠后解决

以前老版本设置 left: '10%',top: '10%',就可以规定弹出框第一次弹出来的位置,现在新版本上面的left 参数和top参数好像去掉了,在v6上我应该怎么实现这种应用,项目比较急,求 @aui 帮忙

有没有 left: '10%',top: '10% 这样子的自定义定位功能???求 @aui 帮忙。

aui commented

@MINSTONEFE 不支持此

@aui 恩,我自己改源码了。