【问题标题】:Datepicker - Won't attach to Dynamic elementDatepicker - 不会附加到动态元素
【发布时间】:2015-08-27 18:42:21
【问题描述】:

我知道这个问题之前已经在 SO 上提出并回答了,但是这些解决方案没有成功地让它工作,或者我错过了一个可以工作的解决方案

index.php

<id="fupdiv"></div>
<input name="non-dynamic-test-element" type="text" class="datepicker">
<button id="addticket">Open Dynamic Form</button>

Jquery:

$(document).ready(function(){
$( ".datepicker" ).datepicker();
$(document).on('click','#addticket', function() {
    $("#fupdiv").load('blocks/form-followup.php');
    $("#fupdiv").fadeIn();
    $( ".datepicker" ).datepicker("refresh");
                                                });
});

form-followup.php

<div>
<label> Should get datepicker on click</label> <input type="text" class="datepicker" id="dynamic-input">
</div>

问题: 单击“非动态测试元素”输入会正确打开 DatePicker。单击加载的“动态元素”输入不会,控制台中不会引发错误,我尝试了几种不同的方法将日期选择器附加到动态元素。据我了解,使用 .on() 方法并在加载后绑定 datepicker 应该可以工作吗?任何帮助将不胜感激。

【问题讨论】:

    标签: jquery jquery-ui datepicker jquery-ui-datepicker


    【解决方案1】:

    AJAX 调用是异步的,因此可以在元素放入 DOM 之前执行刷新,因此没有绑定。所以绑定应该在加载回调中刷新。

    $("#fupdiv").load('blocks/form-followup.php',function(){
        $( ".datepicker" ).datepicker();
    });
    

    【讨论】:

    • 我对代码进行了更改,但没有发生任何更改。没有错误,但动态加载也没有 Datepicker。
    • @DMSJax 你能在函数里面试试$( ".datepicker" ).datepicker();吗?
    • 感谢工作!放弃刷新就可以了。刷新是其他 SO 答案之一的剩余部分,谢谢!编辑您的答案以放弃刷新,我会接受它。
    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多