【问题标题】:JQuery not executing in CordovaJQuery 未在 Cordova 中执行
【发布时间】:2014-06-17 11:40:27
【问题描述】:

我正在使用 Cordova 开发移动应用程序。 有一个页面我想要一个 JQuery 滑块。 为了实现这一点,我使用了流行的 swipe.js,我这样称呼它: <script src="js/swipe.js"></script>

但是,当我模拟应用程序并转到页面时,它只会向我显示静态 HTML。 更奇怪的是,当我将 WWW 放入 MAMP 并在浏览器中运行时,它还会显示静态 HTML,直到我刷新页面一次,然后它会按照我的意愿运行。

我正在使用 deviceready,但它似乎没有多大帮助:

document.addEventListener("deviceready", function(){
    Slider = $('#slider').Swipe({
        auto: 1000,
        continuous: true
    }).data('Swipe');

    $('#share-button').click(function() {
        $('#social').css('display', 'block');
        $('#overlay').css('display', 'block');
    });

    $('#overlay').click(function() {
        $('#social').css('display', 'none');
        $('#overlay').css('display', 'none');
    });
},true);

我将计时器设置为 1000 毫秒,以便查看 jquery 是否正常工作。

【问题讨论】:

  • 可能设备已准备好,但文档未准备好?试着用 jquery 的文档包装你的滑块代码吧?
  • @AntoineCloutier 我已经尝试过了,但它不起作用:S

标签: javascript jquery html ios cordova


【解决方案1】:

使用 jQuery pageshow 事件代替 document.addEventListener 来初始化 Swipe Slider。 http://www.w3schools.com/jquerymobile/event_pageshow.asp

【讨论】:

    【解决方案2】:

    1.始终将 deviceready 与 cordova 一起使用。

    2.确保你拥有所有需要cordova、cordova_plugins、jquery、swipe等的javascript。

    3.确保它实际上是 deviceready 正在触发。

    我就是这样做的

     $(document).ready( function() {
           document.addEventListener("deviceready", controller.StartApp, false);
       });
    controller.StartApp = function()
    {
    alert("Device ready");
    }
    

    【讨论】:

    • 什么是controller.StartApp
    • 它启动应用程序的功能无关紧要。首先,我的意思是检查设备类型 iOS、android 等的网络检查。
    • 那么我将如何执行我自己的代码呢?在false);之后?
    • 我更新了答案,这样你就可以看到 startapp 是什么了。
    • 我已经尝试过您的方法,但它显示的结果与我的相同(静态 html)。其他 jquery 代码也不起作用,所以我认为我的 swipe.js 没有正确加载,它会导致其他 jquery 代码中断。
    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多