2012-02-25 10 views
6

का उपयोग करके AJAX कॉल पूर्ण होने के बाद प्रतीक्षा कर्सर को डिफ़ॉल्ट (ऑटो) में बदलें, मैं इस समस्या में भाग गया और कुछ Google खोज से मुझे एहसास हुआ कि यह शायद क्रोम और सफारी ब्राउज़र में एक बग है।AJAXStop ईवेंट (क्रोम में)

जब मैं एक फॉर्म सबमिट करता हूं (मूल रूप से, एक AJAX कॉल करें) डिफ़ॉल्ट कर्सर कर्सर (घंटा ग्लास) का इंतजार करने के लिए बदलता है और जब AJAX कॉल पूर्ण होता है (प्रतिक्रिया) कर्सर डिफ़ॉल्ट प्रकार (तीर) में बदल जाता है। हालांकि, यह केवल आईई और एफएफ में अच्छी तरह से काम करता है। क्रोम में, कर्सर अभी भी घंटे का चश्मा कर्सर बनता है जब तक कि मैं कर्सर को स्थानांतरित करने या चेतावनी आदि जैसे कुछ करता हूं

मैंने here का उल्लेख किया है, जो कि Jquery के अजाक्स स्टॉप और ट्रिगर करने के लिए प्रारंभ ईवेंट का उपयोग करता है कार्यवाही लेकिन किसी कारण से यह मेरे लिए काम नहीं करता है।

नीचे मेरा जेएसपी/एचटीएमएल कोड है।

function SubmitForm() 
{ 
    globalAjaxCursorChange(); 
    // some code to make Ajax call 
} 

function globalAjaxCursorChange() 
{ 
    $("html").bind("ajaxStart", function(){ 
     $(this).addClass('busy'); 
    }).bind("ajaxStop", function(){ 
     $(this).removeClass('busy'); 
    }); 
} 

और ये मेरे सीएसएस कोड है।

html.busy, html.busy * { 
    cursor: wait !important; 
} 

मुझे क्या याद आ रही है या मैं गलत कहां हूं? लेख में उल्लिखित समाधान मुझे बहुत सीधे लगता है लेकिन काम नहीं करता है। किसी भी सलाह के लिए बहुत बहुत धन्यवाद।

+0

कोई भी - कोई सुझाव? – user1006072

+0

मैं इसका उत्तर भी जानना चाहता हूं। – Andrew

उत्तर

1

मुझे यकीन नहीं है कि .bind वेरिएंट क्यों काम नहीं करते थे, लेकिन जब मैं "jquery bind ajaxStart" के लिए googled, this पहला खोज परिणाम था।

जैसे, बस सबसे नन्हा परिवर्तन (अर्थात, .ajaxStart( को .bind("ajaxStart", और ajaxStop के साथ एक ही बदल रहा है), मैं नीचे के रूप में दिखाया गया है, काम करने के लिए अपने कोड मिला है साथ:

$(document).ready(function() { 
    // Global ajax cursor change 
    $("html") 
     .ajaxStart(function() { 
      $(this).addClass('busy'); 
     }) 
     .ajaxStop(function() { 
      $(this).removeClass('busy'); 
     }); 
}); 
0

jQuery के रूप में 1.9 आप should attach them to document

// Makes the mousecursor show busy during ajax 
// 
$(document) 

    .ajaxStart(function startBusy() { $('html').addClass ('busy') })  
    .ajaxStop (function stopBusy() { $('html').removeClass('busy') }) 
संबंधित मुद्दे