2016-04-15 51 views
0

我有一個使用jQuery和本地JS一起使用的網站的問題。使用jQuery檢測本地AJAX添加的元素是否存在,並創建一個循環

我想添加到使用本機AJAX添加到頁面的輸入的jQuery UI日期選擇器。我的問題是,在AJAX將div添加到頁面之前,jQuery正在運行。

我可以使用下面的代碼很容易地解決這個問題,但我不想讓jQuery經常檢查頁面上現有的元素,而這些元素永遠不會存在。我擔心這會消耗大量的內存?如果setTimeout函數正在無休止地檢查元素的存在性,它是否會消耗內存?

任何建議或解決方案將是太棒了。

乾杯

(function() { 
    window.main = window.main || {}; 

    /* 
    * Initialisation function 
    */ 
    main.init = function() { 
     main.datePicker(); 
    }, 


    /* 
    * Datepicker function 
    */ 
    main.datePicker = function() { 
     // If the input is visible/has loaded do the datepicker function 
     var datePickerInput = $('.datepicker'); 
     if(datePickerInput.is(':visible')) { 
      datePickerInput.datepicker({ 
       minDate   : 0, 
       dateFormat  : "dd/mm/yy", 
       showOn   : "button", 
       buttonImage  : "images/jquery-ui/calendar.gif", 
       buttonImageOnly : true, 
       buttonText  : "Select date" 
      }); 
     // otherwise recall the function 
     } else { 
      setTimeout(function() { main.datePicker(); }, 2000); 
     } 
    } 
})(); 


// Initialise 
$(document).ready(function() { 
    main.init(); 
}); 
+1

_website其中使用jQuery和本機JS together_是jQuery能夠工作沒有本機JS? :) – smnbbrv

+0

不,它不是。我的意思是很多本機JS代碼和jQuery代碼一起工作。執行不同的工作等 – Jonathan

+0

你試過了,將main.init()調用添加到ajax成功事件? – errand

回答

0

答案是添加main.datePicker();到ajax成功事件。

相關問題