使用Prototype.js更改浏览器光标

时间:2012-06-29 16:11:27

标签: javascript css browser prototypejs mouse-cursor

我在加载页面时更改光标时遇到问题;我的代码是:

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';
   }

更新:好的,它确实改变了光标,但由于在Ajax循环之后有一个document.body.style.cursor = 'default';,它会立即将其更改回来,所以我猜这是一个线程问题。在这种情况下的任何提示?

3 个答案:

答案 0 :(得分: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 :(得分:0)

这种语法怎么样:

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

这适用于我,但事实上,你是否有定义了游标的元素,或者有其他光标样式(可能是可拖动的项目或可点击的链接)覆盖的元素?

我希望看看<body>标记是否实际上使用类似Firebug或Chrome开发者工具的方式实际应用了该样式。

答案 2 :(得分:-1)

因为,你已经在使用jquery了。

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