首先,您应该意识到,如果您将光标分配给体内的任何标签,$('body').css('cursor', 'wait');
都不会更改该标签的光标(像我一样,我cursor: pointer;
在所有锚标签上使用)。您可能想先看看我对这个特定问题的解决方案:光标等待ajax调用
正如其他人所说,对于仅在用户在Webkit浏览器上移动鼠标后才更新光标的问题,没有真正的解决方案。
话虽如此,如果您将css微调器动态地添加到当前光标,仍然存在解决方法。这不是一个完美的解决方案,因为您不确定光标的大小以及旋转器是否正确定位。
光标后的CSS微调器:DEMO
$.fn.extend(
{
reset_on : function(event_name, callback)
{ return this.off(event_name).on(event_name, callback); }
});
var g_loader = $('.loader');
function add_cursor_progress(evt)
{
function refresh_pos(e_)
{
g_loader.css({
display : "inline",
left : e_.pageX + 8,
top : e_.pageY - 8
});
}
refresh_pos(evt);
var id = ".addcursorprog";
$('html').reset_on('mousemove' + id, refresh_pos);
$(window).
reset_on('mouseenter' + id, function(){ g_loader.css('display', 'inline'); }).
reset_on('mouseleave' + id, function(){ g_loader.css('display', 'none'); });
}
function remove_cursor_progress(evt)
{
var id = ".addcursorprog";
g_loader.css('display', 'none');
$('html').off('mousemove' + id);
$(window).off('mouseenter' + id).off('mouseleave' + id);
}
$('.action').click(add_cursor_progress);
$('.stop').click(remove_cursor_progress);
您还需要检查它是否也是触摸设备 var isTouchDevice = typeof window.ontouchstart !== 'undefined';
总之,您最好尝试在页面中添加静态微调器或其他可以显示加载过程的控件,而不要尝试使用游标进行操作。