我需要将自定义日期选择器添加到我的输入字段。输入字段作为通过 ajax 加载的表单的一部分加载。每次表单更新都是通过ajax 进行的。我已尝试绑定(bind)更改,如下面的代码片段所示:
$('form').on('mouseover','.date_picker', function() {
$('.date_picker').datepicker({'format' : 'mm/dd/yyyy'});
})
mouseover
事件的问题在于它触发得太频繁,并且可能不是使用触摸设备的最佳方式。
因此,如果我尝试添加优化以确保仅调用 datepicker
一次,并且在我执行 ajax 更新之前一切正常。
var firstTime = true;
$('form').on('mouseover','.date_picker', function() {
if(firstTime){
$('.date_picker').datepicker({'format' : 'mm/dd/yyyy'});
firstTime = false;
}
})
将事物绑定(bind)到通过 ajax 加载的元素而不依赖于在 ajax 回调中设置事物的正确方法是什么?
最佳答案
我认为你应该将 firstime
的值更改回零:
$.ajax({
/*
*/
.success : function(){
firstime = 0;
}
});
当然,如果 firsttime
足够全局,可以被 $.ajax
和 mouseover
识别,那么上述解决方案就可以工作。
编辑:
您可以设置一个全局 AJAX 事件处理程序,以便在该页面中成功发送 ajax 请求时触发一个函数。您可以向其添加条件以适合您的应用程序。
$.ajaxSuccess({
success : function(){
changeBackToValue(); // custom function
}
});
或者您可以将其附加到表单的容器中:
$("#form-container").ajaxSuccess({...});
关于javascript - 如何在jquery中动态初始化组件到输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774341/