2011-08-27 28 views
-1

我發送一個AJAX請求鼠標上的事件,我收到所需的響應。 但是,當我再次發送懸停在發送請求的元素上時,請求再次發送。ajax請求一次發送鼠標懸停,響應收到,但不應該再次發送時,我再次在html元素鼠標懸停

我不想再次發送請求,而是希望頁面使用之前收到的響應。

誰來做?這裏是一個示例代碼。 - >這個函數在鼠標上被調用,不想在同一個鼠標元素上再次發送請求。

function showImage(val) 
{ 
    $("#DIV").html('<IMAGESOURCE="../adsd/ajax_loader.gif">'); 

    $.ajax({ 
     type  : "get", 
     cache : false, 
     url  : "blabla.php?imgID="+val, 
     data  : $(this).serializeArray(), 
     success: function(data) { 
      document.getElementById("DIV").innerHTML = data; 
     } 
    }); 
}; 
+0

你最好只發布事件處理代碼。 –

回答

0

我覺得是你需要在鼠標懸停時使用jQuery.data()

if(!jQuery.data(dom, 'sent')){ 
    //take action 
    jQuery.data(dom, 'sent', true);// do it on success 
} 
+0

如果(jQuery.data(DOM, '送')!){ $阿賈克斯({ 類型: 「獲取」, 緩存:假的, 網址: 「blabla.php imgID =」 + VAL, 數據:$(this).serializeArray(), 成功:function(data){ document.getElementById(「DIV」)。innerHTML = data; } }); }; } 這是我應該怎麼做?我不能得到它wrk ...:( – jassi

+0

不,不能得到它.. – jassi

+0

請注意,此方法目前不提供跨平臺支持設置XML文檔的數據,因爲Internet Explorer不允許數據通過擴展屬性連接 - 我不是專家,但是這聽起來不錯。什麼說??? – jassi

1

當接收到響應,並檢查該變量在發送前荷蘭國際集團的要求設置一個變量的值。

var response = false; 
function showImage(val) 
{ 
    $("#DIV").html(''); 
    if (response == false) { 
     $.ajax({  
      type : "get", 
      cache : false, 
      url  : "blabla.php?imgID=" + val, 
      data : $(this).serializeArray(), 
      success: function(data) 
      { 
       document.getElementById("DIV").innerHTML = data; 
       response = true; 
      }    
     }); 
    } else { 
     // What to do if the request was sent before 
    } 
}; 
+0

NICE和有幫助的。 。這個解決方案給了我另一個查詢... 我將如何顯示接收到的圖像之前發送的請求??在鼠標上??謝謝你的幫助,Ibrahi米 – jassi

+0

嗯,我不知道你想做什麼......但我認爲這個迴應是''元素?在這種情況下,你不需要'else'的情況。否則,你能告訴我你到底想達到什麼目的嗎? –

相關問題