【问题标题】:jquery timepicker not working in phonegap androidjquery timepicker在phonegap android中不起作用
【发布时间】:2013-08-30 11:31:19
【问题描述】:

我正在创建一个应用程序,我想在其中应用 datepicker 来选择生日,因此我尝试使用 jquery-ui-timepicker-addon.js 但问题是当我尝试使用它静态地在 div 中然后它显示日期选择器但是当我尝试动态创建它时它不起作用任何人都可以告诉它为什么它会这样以及我在哪里犯了错误 这是创建动态日期选择器的代码:

    var creatText = $(document.createElement('input')).attr('type','text');
    creatText.attr('class','datetimepicker');
    creatText.attr('id','birthdate');
    creatText.attr('size','25');
    creatText.attr('placeholder','Birth Date');
    creatText.appendTo('#contentdemo');

这里是静态创建日期选择器的代码,它的工作正常:

<div data-role="content" id="contentDemo">
<div data-role="collapsible-set" data-content-theme="c" style="margin-left: 8px;margin-right: 8px" id="dynamic_actionform">
</div>
  <input class='datetimepicker' placeholder="birth date" size='25'>
</div>

这里是 github 中 js 文件的示例,我使用enter link description here logcat 中的错误:

logcat09-05 06:37:41.943: D/CordovaLog(2822): Uncaught Error: no such method 'value' for slider widget instance 09-05 06:37:41.943:

E/Web Console(2822): Uncaught Error: no such method 'value' for slider widget instance at file:///android_asset/www/js/jquery-1.7.1.js:552

提前致谢。

【问题讨论】:

    标签: javascript android jquery cordova-2.0.0 jquery-ui-timepicker


    【解决方案1】:

    我相信在将新元素附加到 DOM 之后,您需要在新元素上调用 .datetimepicker(),如下所示:

    $('#contentdemo').append('<input type="text" id="birthdate" size="25" placeholder="Birth Date">');
    
    // This should initialize the datepicker functionality
    jQuery('#birthdate').datetimepicker();
    

    【讨论】:

    • 我试过了,但它在 logcat 中显示错误..08-30 12:28:31.107: D/CordovaLog(6452): Uncaught TypeError: Cannot read property 'msie' of undefined 08-30 12:28:31.107:E/Web 控制台(6452):未捕获的类型错误:无法读取文件中未定义的属性“msie”:///android_asset/www/js/jquery-ui.js:8753
    • 嗯,好的。看起来问题出在您使用的 jquery-ui 版本上。旧版本仍然包含对已弃用的 jQuery.browser 属性的引用。尝试升级到 jquery-ui 1.10+ 看看是否能解决您的问题。
    • 我已经将我的 jquery-ui 更新到 v1.10.3 知道它在 logcat09-05 06:37:41.943: D/CordovaLog(2822): Uncaught Error: no such method 'value ' 对于滑块小部件实例 09-05 06:37:41.943:E/Web 控制台(2822):未捕获的错误:在 file:///android_asset/www/js/jquery-1.7 处滑块小部件实例没有此类方法“值” .1.js:552
    【解决方案2】:
    var creatText = $(document.createElement('input')).attr('type', 'text');
    creatText.attr('class', 'datetimepicker');
    creatText.attr('id', 'birthdate');
    creatText.attr('size', '25');
    creatText.attr('placeholder', 'Birth Date');
    creatText.appendTo('#contentDemo');
    
    $('.datetimepicker').datetimepicker()
    

    您在追加时将contentDemo 拼写为contentdemo

    Fiddle Example

    【讨论】:

    • 我没有使用 jquery-ui.datepicker.js 我使用 jquery-ui-timepicker-addon.js 在滚动视图中获取日期选择器,如 android 时间选择器,以便用户更容易选择brthdate。
    • 基本上是一样的。如果您要使用 3rd 方库,请链接到它们或创建包含它们的 jsfiddle。我的问题是用 jquery-ui-timepicker-addon.js 更新的
    • 如果我正在调用 datetimepicker 函数,那么它会在日志中为动态创建的文件提供一个错误,但是当我点击静态创建的文件时,它会显示日期选择器。
    • 看看我的小提琴。调用 datetimepicker() 的元素是动态添加的并且正在工作。
    • 似乎它在 Chrome 中不起作用,但在 Firefox 中起作用。尝试在其他地方托管 javascript 文件,或者只是在您自己的代码中使用它,链接到您本地版本的插件。
    猜你喜欢
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2021-02-22
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    相关资源
    最近更新 更多