2012-06-29 28 views
2

我在加载页面时遇到了更改光标的问题;我的代码是:使用Prototype.js更改浏览器光标

Event.observe(window, 'load', function() { 
    document.body.style.cursor = 'wait'; 
    $$('select').each(function(s) { 
     var ajaxRequest = new Ajax.Request(
      '/some_ajax_proc', 
      { 

页面加载时,光标不会改变。但是它与其它事件侦听器没有问题做进一步的如:

$('mytxt').observe('change', function() { 
     document.body.style.cursor = 'wait'; 
    } 

UPDATE:OK,它确实改变了光标,但是由于阿贾克斯循环结束后有一个document.body.style.cursor = 'default';,它换了回来立刻所以我猜这是一个线程问题。在这种情况下的任何提示?

+0

您在哪看到这个浏览器?适用于Mac上最新的Safari。 – dontGoPlastic

+0

你可以使用[jsfiddle](http://jsfiddle.net)显示问题吗? – Starx

回答

2

你试过吗?

Ajax.Responders.register({ 
    onCreate: function() { 
       if (Ajax.activeRequestCount === 1) { 
        //Code for change the cursor, something like this: 
        document.body.style.cursor = 'wait'; 
       } 
      }, 
    onComplete: function() { 
        if (Ajax.activeRequestCount === 0) { 
        // End loading... 
        .... 
        } 
       } 
}); 
+1

完成这项工作......谢谢 – xain

0

这个怎么样的语法:

Event.observe(window, 'load', function() { 
    $(document.body).setStyle({ 
    cursor: 'wait' 
    }); 
}); 

这对我的作品,但它的事情是,你有两种光标元素定义,或者有其他光标样式(或许拖动项目或点击链接)哪个重写?

我想看看<body>标签实际上是否使用类似Firebug或Chrome Developer Tools的应用程序。

+0

感谢您的回复,但没有运气。我不认为这是一个风格问题......我之前提到过,它工作得很好。我最近添加了更多信息以防万一。 – xain

+0

@xain我如何复制你的设置?此代码适用于我。可能你有这个代码与其他东西进行交互?有关您尝试过的更多信息将会有所帮助。 – artlung

+0

我认为在'等待'中设置光标之后,在'load'事件内部添加一个Ajax.Request会起作用。谢谢 – xain

-1

因为,你已经在使用jQuery。

$('mytxt').observe('change', function() { 
    $("body").css("cursor", "wait"); 
} 
+1

任何错误,与此答案。请提供一些评论downvoter。 – Starx