【问题标题】:Change browser cursor with Prototype.js使用 Prototype.js 更改浏览器光标
【发布时间】:2012-07-01 04:39:46
【问题描述】:

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

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';,它会立即将它改回来,所以我猜这是一个线程问题。在这种情况下有什么提示吗?

【问题讨论】:

  • 您在哪个浏览器中看到这个?在 Mac 上最新的 Safari 中为我工作。
  • 你能用jsfiddle显示这个问题吗?

标签: javascript css browser prototypejs mouse-cursor


【解决方案1】:

你试过了吗?

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...
                     ....
                  }
               }
});

【讨论】:

    【解决方案2】:

    因为,您已经在使用 jquery。

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

    【讨论】:

    • 这个答案有什么问题。请提供一些评论downvoter。
    【解决方案3】:

    这个语法怎么样:

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

    这对我有用,但问题是,您是否有定义了光标的元素,或者有其他光标样式(可能是可拖动项目或可点击链接)覆盖?

    我想看看 <body> 标签是否实际上具有使用 Firebug 或 Chrome 开发者工具等工具实际应用的样式。

    【讨论】:

    • 感谢您的回复,但运气不佳。我不认为这是一个风格问题......正如我提到的那样,它之后工作得很好。我最近添加了更多信息以防万一。
    • @xain 如何复制您的设置?这段代码对我有用。可能你有这个代码与其他东西交互?有关您尝试过的内容的更多信息会有所帮助。
    • 我认为在将光标设置为“等待”之后在“加载”事件中添加一个 Ajax.Request 就可以了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2013-06-02
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多