DatePicker для начальной загрузки не реагирует
Я использую DatePicker для начальной загрузки
Моя проблема в том, что при первом просмотре магистрали событие щелчка не вызывается. как только я нажимаю в другом месте на странице, все работает нормально.
у кого-нибудь есть идея, где я все испорчу?
HTML-фрагмент:
<form class="form-horizontal"><fieldset><div class="control-group">
<label class="control-label" for="focusedInput">id</label>
<div class="controls">
<input class="input-xlarge" id="id" type="hidden" value="1" disabled="">
</div>
</div>
<div class="control-group">
<label class="control-label" for="focusedInput">Order_Ordertype</label>
<div class="controls">
<input class="input-xlarge" id="order_ordertype" type="text" disabled="" value="beeronlineshoporder">
</div>
</div>
<div class="control-group">
<label class="control-label" for="focusedInput">order_date</label>
<div class="controls"><input type="text" value="13.07.2013" data-date-format="dd.mm.yyyy" id="order_date"> </div>
</div>
<div class="form-actions">
<button id="btn_save" class="btn">Save changes</button>
<button class="btn">Cancel</button>
</div>
</fieldset></form>
срезанный позвоночник
events:{
"click #order_date":"datepicker_order_date",
"change input":"change",
"click #btn_save":"saveBeerOnlineShopOrder",
"click .delete":"deleteBeerOnlineShopOrder"
},
datepicker_order_date:function () {
$('#order_date').datepicker({autoclose: true});
},
Спасибо заранее за любые данные
3 ответа
Потому что первый раз, когда вы нажимаете #order_date
DatePicker это еще не готово. Вы должны инициализировать DatePicker только один раз, и лучшее место, где вы можете сделать это render
метод.
Изменить ваше событие click
в mouseover
, как это:
"mouseover #order_date":"datepicker_order_date"
а также
в вашей функции положить это:
datepicker_order_date:function (ev) {
$(ev.currentTarget).datepicker({autoclose: true});
},
У меня отлично работает:)
В этом случае метод рендеринга записывает некоторую установленную функцию тайм-аута внутри этой функции просто $('#order_date').datepicker({autoclose: true});
Это как `render: function(eventName) {
......
.....
....
setTimeout(function() {
$('#order_date').datepicker({autoclose: true});
},0);
return this;
}`