在做开发时,测试人员提出了一个问题,郁闷了一天后终于有了答案和解决办法:
就是使用了bockUI 的 $.blockUI() 方法后,在使用 $.unblockUI() ,页面在不报任何错误,并且全部执行正常的情况下,鼠标的样式一直是忙碌等待的状态(漏斗,或转圈)的样子。
出现的BUG的测试时这样的,点完按钮后,鼠标不动,(点一下就行,鼠标千万不能再动第二下),然后鼠标的状态不能自动回复,一直是等待的状态。(虽然已经 unblock 完毕)
这里就不上截图了,鼠标就是一个小漏斗(IE6,或设置了鼠标的等待状态样式的情况下,win7 默认是转圈的)
这里是官方给出的demo:(貌似demo 也是这个样子的,就有这样的一个BUG)
http://www.malsup.com/jquery/block/#demos
我的解决办法:
官方给出了一个api 是
$.unblockUI({
onUnblock:function(){}
});
个人认为出现鼠标一直转圈的原因是是因为,鼠标聚焦,引用等没有释放,
(纯属瞎猜,还望有理解的大哥给予合理的解释)
这里的做法是:
$.unblockUI({
onUnblock:function(){
$("body").append($("<iframe id='tester11' height='0',width='0' style='display:none;'></iframe>"));
$("#tester11").remove();
}});
这样就可以使得鼠标漏斗、转圈等待的情况消失,完美解决问题。
当然如果这个问题是blockUI的问题或BUG的话大家可以修改源代码,在里边加上这么一段,就不用每次unblockUI这样写了。
个人认为能解决问题的代码就是好代码。