2012-06-29 26 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