简体   繁体   English

在动态添加的元素上引导日期时间选择器插件

[英]bootstrap dateTime picker plugin on dynamic added element

I am new to jquery i have added bootstrap datetime plugin on an element after dom load i am adding an element which having same class by which datetime plugin is being called. 我是jQuery新手,在dom加载后,我在一个元素上添加了bootstrap datetime插件,我正在添加一个具有相同类的元素,该类被datetime插件调用。 But unable to call plugin an no console error found. 但是无法调用插件,找不到控制台错误。

Because you probably bound datePicker on ready event. 因为您可能在ready事件上绑定了datePicker。

The best solution imo would be to bind DatePicker just after you create that element. 最好的解决方案imo是在创建该元素之后绑定DatePicker。 So: 所以:

var myDynamicElementCreateFunction = function () {
    // ...
    var $elem = $('<div/>'); // Create your element
    $('#my-elem-container').append($elem);
    $elem.datepicker();
}

The second solution would be to use .on() event binding. 第二种解决方案是使用.on()事件绑定。

$(function () {
    $('#my-elem-container').on('click', '.my-elem-selector', function () {
        var $this = $(this);
        $this.datePicker(); // You should probably check whether datapicker is already attached before binding it. 
    });
});

I didn't use datepicker so I don't know if it provides a way to check whether it's already attached to an element. 我没有使用datepicker,所以不知道它是否提供一种检查它是否已附加到元素的方法。 You could try it by checking if $('#my-element').datePicker exists. 您可以通过检查$('#my-element').datePicker存在来尝试。 If that doesn't work you can always make some kind of hash map to track these. 如果这样不起作用,您始终可以制作某种哈希图来跟踪这些哈希图。

Maybe even datepicker is smart enough to know not to reinitialize twice on same element. 甚至datepicker都足够聪明,知道不对同一元素重新初始化两次。

Have in mind that first solution is much better and cleaner imo and you should use it if possible. 请记住,第一个解决方案更好,更干净的imo,如果可能,应该使用它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM