在Javascript / JQuery页面中没有按预期发生游标更改

时间:2010-09-24 13:29:33

标签: javascript jquery

我有一个有同步和异步活动的网站,当用户点击按钮时,onclick方法所做的第一件事就是:

$('body').css('cursor','wait');

在方法返回之前我调用

$('body').css('cursor','auto');

光标仅闪烁朝向返回方法的更改。有没有人知道为什么在方法调用时不会立即更改游标?

3 个答案:

答案 0 :(得分:1)

以上一定肯定会奏效。 我认为显示游标:等待;不是个好主意。最好是看看你是否展示了一些ajax加载图片。

答案 1 :(得分:0)

如果您在该按钮单击中使用Jquery.ajax,则需要在ajax完成时将光标设置为auto

例如

$(function(){
     $('#button ID'.click(function(){
           $('body').css('cursor','wait');
           $.ajax({ 
                     url: "test.html", 
                     complete: function(){
                           $('body').css('cursor','auto');
                     }
           });
     });

});

答案 2 :(得分:0)

  

我有一个正在进行同步和异步活动的网站

不是真的。如果只有一个同步活动正在进行,则不会触发异步事件,整个浏览器UI将被阻止,并且鼠标指针不会更新。

您必须将控制权返回给浏览器,以允许它在样式更改后更改鼠标指针。您可以尝试在更新setTimeout样式后将同步代码放在cursor上,以便在UI挂起同步操作之前更新生效。但真正适当的,用户友好的方法是使一切都异步。