我正在努力解决以下问题:我动态创建输入元素,并尝试将日期选择器附加到它。但只有当我单击输入元素外部的某个位置然后再次单击输入时,它才有效。控制台日志在第一次点击时工作正常,所以我不知道这里出了什么问题?
$(document).ready(function(){
$("div.single_condition").on("click", "input", function(){
if($("select.select_operator").val() == '>'){
console.log("O.K.");
$(this).datepicker();
}
else {
console.log("NOT O.K.");
}
});
});
最佳答案
即使您使用 .datepicker()
将日期选择器正确绑定(bind)到输入,您也需要在第一次点击时显示它。
试试这个代码,
$(this).datepicker().datepicker("show");
<强> Demo
更改了 JS:
$("div.single_condition").on("click", "input", function () {
if ($("select.select_operator").val() == '>') {
console.log("O.K.");
$(this).datepicker().datepicker("show");
} else {
console.log("NOT O.K.");
}
});
建议:在附加动态元素后绑定(bind).datepicker()
,而不是在点击
时绑定(bind)。
关于jquery on.click 在第一次单击时不起作用(使用动态元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487664/