我有一個異步函數,它由一個「onmouseover」觸發,它將一個對子節點的請求發送到列表並顯示它們。將它設置爲同步可以防止這種情況,但據我所知,它需要是異步的才能在Chrome和IE中顯示加載圖標。問題在於,如果在函數仍在執行時您多次使用鼠標滑過,則會多次加載子項。我遇到的麻煩是阻止該功能一次運行多次,以防止多次加載子節點。jQuery - 保持一個異步函數不止一次同時運行
在此先感謝!
我的Ajax調用(jQuery的,而不是$,因爲我在noconflict模式下運行):
var ul = "#ul_" + categoryId;
var ifUlExists = jQuery(ul);
// Only if UL not already loaded
if (ifUlExists.length == 0) {
jQuery.ajax({
type: 'POST',
url: '/adminajax/add_kids',
data: {
categoryId: categoryId
},
beforeSend:function(){
// Toggle +/- icon
jQuery(expandIcon).addClass("loading");
},
success:function(resp){
var kids = resp;
// If there are kids returned by the query
if (kids){
var container = "#c_"+categoryId;
jQuery(kids).insertAfter(jQuery(container));
jQuery(ul).slideDown("slow");
}
})};
} else {
jQuery(expandIcon).addClass("collapse");
jQuery(ul).slideDown("slow");
}
謝謝你太多了!絕對是我一直花費數小時試圖弄清楚的。 – Matt 2010-12-19 18:51:48