关于 jQuery blockUI 的一点小问题

在做开发时,测试人员提出了一个问题,郁闷了一天后终于有了答案和解决办法:

就是使用了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这样写了。

个人认为能解决问题的代码就是好代码。

原文地址:https://www.cnblogs.com/icenter/p/2537978.html