Knockout.js Knockoutjs和JQuery日期选择器。元素在重新渲染后释放日期选择器

Knockout.js Knockoutjs和JQuery日期选择器。元素在重新渲染后释放日期选择器,knockout.js,jquery-ui-datepicker,Knockout.js,Jquery Ui Datepicker,当我试图使用id为“eventStartDate”的输入时,在它被隐藏并再次可见后,它会松开日期选择器: <!-- ko 'if': isEvent.forEditing --> <div class="editor-field"> <div class="editor-label">Початок події: </div> <input type="datetime" name="eventStar

当我试图使用id为“eventStartDate”的输入时,在它被隐藏并再次可见后,它会松开日期选择器:

<!-- ko 'if': isEvent.forEditing -->
    <div class="editor-field">
        <div class="editor-label">Початок події: </div>
        <input type="datetime" name="eventStartDate" id="eventStartDate" />
        @Html.ValidationMessageFor(model => model.eventStartDate)
    </div>
<!-- /ko -->

Початок події: 
@Html.ValidationMessageFor(model=>model.eventStartDate)
有人能告诉我如何在重新呈现该对象后强制$(“#eventStartDate”).datepicker()初始化该对象吗

多谢各位


UPD:我知道它必须通过自定义绑定来完成,但是有人能帮我弄清楚,究竟如何?…

< p>最好的办法是考虑使用一个类似于这个答案的答案:或者这个答案:

如果您不需要双向数据绑定,那么最小的自定义绑定就是:

ko.bindingHandlers.datepicker = {
   init: function(element) {
       $(element).datepicker();

       //handle disposal (if KO removes by the template binding)
       ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).datepicker("destroy");
       });
   }  
};

最好的办法是考虑使用一个类似于这个答案的答案:或者这个答案:

如果您不需要双向数据绑定,那么最小的自定义绑定就是:

ko.bindingHandlers.datepicker = {
   init: function(element) {
       $(element).datepicker();

       //handle disposal (if KO removes by the template binding)
       ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).datepicker("destroy");
       });
   }  
};
非常感谢!:)这很有效。我会试着多学习一下自定义绑定。非常感谢!:)这很有效。我会试着多学一点。