jquery on.click 在第一次单击时不起作用(使用动态元素)

标签 jquery jquery-ui onclick jquery-ui-datepicker

我正在努力解决以下问题:我动态创建输入元素,并尝试将日期选择器附加到它。但只有当我单击输入元素外部的某个位置然后再次单击输入时,它才有效。控制台日志在第一次点击时工作正常,所以我不知道这里出了什么问题?

$(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/

相关文章:

javascript - 如何调用 jquery 插件

javascript - UI Bootstrap - 缺少包含实现

c# - MVC Html.HIddenFor 值未传递给模型

javascript - Jquery Selector 的使用

javascript - jQuery UI 可拖动不拖动 RTL 页面中的 X 轴

javascript - 在 JavaScript 中添加带有参数的 onclick 事件

javascript - 如何更改悬停以单击 jquery slider

javascript - 滚动到下一个 div 时如何更改 div 的文本

php - 使用 php 将 mysql 数据添加到 Accordion 中

javascript - 单击后禁用元素?