JQuery 未在 Cordova 中执行

Posted

技术标签:

【中文标题】JQuery 未在 Cordova 中执行【英文标题】:JQuery not executing in 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 【参考方案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 它启动应用程序的功能无关紧要。首先,我的意思是检查设备类型 iosandroid 等的网络检查。 那么我将如何执行我自己的代码呢?在false);之后? 我更新了答案,这样你就可以看到 startapp 是什么了。 我已经尝试过您的方法,但它显示的结果与我的相同(静态 html)。其他 jquery 代码也不起作用,所以我认为我的 swipe.js 没有正确加载,它会导致其他 jquery 代码中断。

以上是关于JQuery 未在 Cordova 中执行的主要内容,如果未能解决你的问题,请参考以下文章

OnPause 未在 cordova/phonegap 中执行代码 :(((

<Cord​​ova/CDVLocalStorage.h> 未找到

applicationDidBecomeActive 未在 Cordova 应用程序中触发

地图未在 Cordova Android 中显示

Cordova 5 未在 XCode 中处理新的 ios 应用程序目标

外部图像未在 Android 应用程序中显示 - Meteor - Cordova