Javascript 在函数内调用DatePicker时,DatePicker不工作
我有个奇怪的问题。我正在尝试初始化文档就绪函数中的日期选择器:Javascript 在函数内调用DatePicker时,DatePicker不工作,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我有个奇怪的问题。我正在尝试初始化文档就绪函数中的日期选择器: $(document).ready(fncInitialize); function fncInitialize() { fncBindControls(); } function fncBindControls() { var objDate = $(this).find("input[data-datepicker='True']"); objDate
$(document).ready(fncInitialize);
function fncInitialize() {
fncBindControls();
}
function fncBindControls() {
var objDate = $(this).find("input[data-datepicker='True']");
objDate.datepicker();
}
function fncInitialize() {
fncBindControls.call(this);
}
问题是这不起作用。日期选择器不工作。幸运的是,当我重新定位元素时:
function fncInitialize() {
var objDate = $(this).find("input[data-datepicker='True']");
objDate.datepicker();
fncBindControls();
}
function fncBindControls() {
}
这个代码有效。但是为什么呢?我只是把datepicker放在另一个函数上,以便于维护,但它不起作用。我真的需要把它放在document ready的第一个函数中吗?问题在于,在第二个函数中,您失去了这个函数的作用域。您需要将其作为参数传递:
$(document).ready(fncInitialize);
function fncInitialize() {
fncBindControls(this);
}
function fncBindControls(el) {
var objDate = $(el).find("input[data-datepicker='True']");
objDate.datepicker();
}
或在调用函数时提供作用域:
$(document).ready(fncInitialize);
function fncInitialize() {
fncBindControls();
}
function fncBindControls() {
var objDate = $(this).find("input[data-datepicker='True']");
objDate.datepicker();
}
function fncInitialize() {
fncBindControls.call(this);
}
当您尝试绑定控件时,源页面中是否存在此输入[data datepicker='True']?它工作得很好,我理解您的解释。非常感谢!