【问题标题】:jQuery Datepicker okay on first load of a page but fails thereafterjQuery Datepicker 在第一次加载页面时正常,但此后失败
【发布时间】:2016-07-22 21:28:26
【问题描述】:

这是我第二次问这个问题。我最初收到的回复和类似问题的无数其他答案都没有帮助我解决问题。

问题在于,一旦一个 datepicker 对象被初始化,第二次初始化就会导致它失败。我尝试了各种模糊和破坏,但没有任何效果。

请看this simple page which demonstrates the problem

这是包含日期选择器输入元素的页面的 javascript...

$(document).ready (function(){
     sp = " ";
     lf = '\n'


  $(function (){
     $("input#datepicker").datepicker(); 
     $("input#datepicker2").datepicker();   
  })


})// document ready

我非常感谢任何帮助以使其正常工作。我已经花了大约八个小时没有成功。

谢谢,

-dmd-

【问题讨论】:

  • jQueryUI(和许多其他 UI 库)将很多“东西”附加到元素上,通过覆盖 div 的内容从 DOM 中删除元素并不能摆脱它。您是否尝试过在加载前调用destroy
  • 您能解释一下如何销毁 datepicker 对象吗?
  • "destroy" 上面是文档的超链接(所以有一些非常糟糕的对比问题恕我直言,很难看到)但它是 $( ".selector" ).datepicker( "destroy" );
  • 是的,这就是我尝试过的语法。不幸的是,它并没有解决问题。 $('input#datepicker').datepicker ("destroy"); $("input#datepicker").datepicker(); $('input#datepicker2').datepicker ("destroy"); $("input#datepicker2").datepicker();

标签: javascript jquery datepicker jquery-ui-datepicker


【解决方案1】:

您的代码已过时。您在文档就绪函数内有一个文档就绪函数($(function(){})$(document).ready(function(){}) 的简写。但这不是问题。在 divtest.html 中使用以下代码并删除 datepicker.html 中的调用:

$(function(){
  $(document).on('DOMNodeInserted','input#datepicker,input#datepicker2', function(){
    $(this).datepicker();
  });
}

【讨论】:

  • 谢谢,我试过了,但现在日期选择器元素根本不显示。
【解决方案2】:

最后,我有一个解决方案,而且很简单。

在 datepicker 页面上,在初始化 datepicker 之前,添加这一行

$('#ui-datepicker-div').remove();

然后

$("input#datepicker").datepicker(); 
$("input#datepicker2").datepicker();

这对我有用,我真的希望它对其他陷入此问题的人有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    相关资源
    最近更新 更多