2017-02-12 64 views
0

觸發變化和負荷事件我有它運行在選擇框#type作爲ID的變化事件代碼。該元素通過ajax在引導模式窗口中加載。通過顯示/隱藏相關元素併發出ajax請求,它可以在更改事件中正常工作。關於Ajax加載的內容

現在我想每次運行它,除了更改事件,也加載ajax內容,因爲有時爲#type元素加載默認值,我想顯示/隱藏元素並在ajax內容加載時激發ajax請求那時。

我試圖用load事件這樣的,

$(document).on('load change', '#geo-form #type', function() {...

但ID沒有工作。我該如何做這項工作。

以下是默認工作代碼,截至目前。

$(document).on('change', '#geo-form #type', function() { 
    var value = $(this).val(); 
    console.log(value); 
    if (value == '') { 
     $.getJSON(url('ajax/divisions'), null, function (data) { 
      $("#geo-form #division_id").html(''); 
      $("#geo-form #division_id").append(
       $("<option></option>").text('Select one').val('') 
      ); 
      $.each(data, function (id, name) { 
       $("#geo-form #division_id").append(
        $("<option></option>").text(name).val(id) 
       ); 
      }); 
     }); 
    } 
    switch (value) { 
     case 'district': 
      $('#geo-form .division').removeClass('hide'); 
      $('#geo-form .district').addClass('hide'); 
      $('#geo-form .tehsil').addClass('hide'); 
      $('#geo-form .block').addClass('hide'); 
      break; 
     case 'tehsil': 
      $('#geo-form .division').removeClass('hide'); 
      $('#geo-form .district').removeClass('hide'); 
      $('#geo-form .tehsil').addClass('hide'); 
      $('#geo-form .block').addClass('hide'); 
      break; 
     case 'block': 
      $('#geo-form .division').removeClass('hide'); 
      $('#geo-form .district').removeClass('hide'); 
      $('#geo-form .tehsil').removeClass('hide'); 
      $('#geo-form .block').addClass('hide'); 
      break; 
     case 'village': 
      $('#geo-form .division').removeClass('hide'); 
      $('#geo-form .district').removeClass('hide'); 
      $('#geo-form .tehsil').removeClass('hide'); 
      $('#geo-form .block').removeClass('hide'); 
      break; 
    } 
}); 
+0

因此觸發它'$(文件).trigger( 「變」)' – epascarello

+0

將其應用到阿賈克斯加載的內容呢? – Ehs4n

+0

你試過了,看看會發生什麼? – epascarello

回答

0

,您可以手動trigger它重新創建:

$("#geo-form #division_id").trigger('change'); 
+0

'change'事件工作正常。我只是希望它在頁面加載時也觸發,但其本身的內容(包括觸發元素)通過ajax加載。 – Ehs4n

+0

我知道。加載或重新加載內容時,請運行此代碼。這實際上並不是變化事件,它迫使處理程序運行。 –

+0

由於我使用bootstrap模式加載內容,因此我在模式組件的'loaded.bs.modal'事件中嘗試了此代碼。 bootstrap事件通過ajax在內容加載時觸發,但是$(document).trigger('change')不會觸發。 – Ehs4n