2013-07-31 41 views
0

我使用以下代碼來顯示內嵌日期選擇器;引導日期選擇器不會在第一次點擊時觸發

$('.show_datepicker').datepicker({ 
     weekStart: 1, 
     startDate : '2013-07-31', 
     endDate : '2013-09-30', 
     format : 'yyyy-mm-dd', 
    }).on('changeDate', function(e){ 
     $('.datepicker-inline').on('click', '.datepicker_days:not(.disabled)', function() { 
      $('.loading').show(); // Show loading icon 
      $("#loading_div").load("loading_url.php",function(){ 
       $('.loading').hide(); // Hide loading icon when finished 
      }); 
     }); 
    }); 

問題1

這一切都工作得非常好,其實旁邊,它當我點擊了一天首次不火。只要我在頁面上,最初的點擊就可以。但是每次刷新頁面時,我都必須首次點擊任何日期才能讓它繼續工作。

我想這是因爲函數內部有單獨的onclick事件,但我需要從通話中排除所有.disabled天,並且無法使其工作。

問題2

的console.log()告訴我這是發射多次 - 當我點擊它第二次它的射擊4次,當我點擊它再次它的射擊6次,等等。

任何想法將不勝感激!

更新:

這是渲染的日期選擇器的HTML代碼:

<div id="datepicker" class="show_datepicker table table-hover table-striped" data-date="2013-08-01"> 
<div class="datepicker datepicker-inline"> 
    <div class="datepicker-days" style="display: block;"> 
     <table class=" table-condensed"> 
     [...] 
     <tbody> 
      <tr> 
       [...] 
       <td class="datepicker_days day alternative" id="2013-08-12">12</td> 
       <td class="datepicker_days day alternative" id="2013-08-13">13</td> 
       <td class="datepicker_days day" id="2013-08-14">14</td> 
       <td class="datepicker_days day inaktiv btn-link disabled" id="2013-08-15">15</td> 
       <td class="datepicker_days day" id="2013-08-16">16</td> 
       <td class="datepicker_days day" id="2013-08-17">17</td> 
       <td class="datepicker_days day disabled inaktiv btn-link" id="2013-08-18">18</td> 
       [...] 
      </tr> 
     </tbody> 
     [...] 
    </table> 
    </div> 
</div> 

+0

你應該創建一個的jsfiddle,所以我們可以在行動 – Pascamel

+0

看到它向我們展示了日期選擇器的HTML代碼。 – Jasen

+0

我剛添加datepicker的html代碼到我的問題! –

回答

0

如果changeDate.disabled日期點擊,那麼你不需要的時候不火擔心過濾無效日期。您可以刪除您正確懷疑導致您的多次點擊並且沒有響應第一次點擊的點擊處理程序 - 您沒有更改日期,因此點擊處理程序未註冊。

.on('changeDate', function(e){ 
    // won't fire on a .disabled date anyway 
    $('.loading').show(); // Show loading icon 
    $("#loading_div").load("loading_url.php",function(){ 
     $('.loading').hide(); // Hide loading icon when finished 
    }); 
}); 
+0

事情是,我需要訪問點擊td元素的ID與'var date = $(this).attr('id');' –

+0

您可以從'e獲取日期。 date'。 – Jasen

相關問題