자식 노드에 대한 요청을 목록에 보내고 표시하는 "onmouseover"에 의해 트리거되는 비동기 함수가 있습니다. 동기화를 설정하면이를 방지 할 수 있지만 Chrome 및 IE에로드 아이콘을 표시하려면 비동기 적이어야합니다. 문제는 함수가 여전히 실행되는 동안 두 번 이상 마우스를 올리면 여러 번 자식을로드한다는 것입니다. 내가 문제가되는 것은 자식 노드가 두 번 이상로드되지 않도록 한 번에 두 번 이상 실행하지 못하게하는 것입니다.jQuery - 비동기 함수가 두 번 이상 실행되지 않도록 유지
미리 감사드립니다.
내 아약스 호출 (대신 $의 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