gpt4 book ai didi

jquery - Phonegap(+ jquery mobile)应用程序在浏览器上运行良好,但在设备上运行不佳

转载 作者:行者123 更新时间:2023-12-01 07:18:21 26 4
gpt4 key购买 nike

我有一个非常简单的测试phonegap + jquery 移动应用程序。这是简单的形式。代码如下:

    <!-- Styles -->
<link type="text/css" rel="stylesheet" href="jquery-ui-mobile/jquery.mobile-1.3.1.min.css">

<!-- jQuery and jQuery Mobile -->
<script src="https://d10ajoocuyu32n.cloudfront.net/jquery-1.9.1.min.js"></script>
<script src="jquery-ui-mobile/jquery.mobile-1.3.1.min.js"></script>

<!-- Extra Codiqa features -->
<script src="https://d10ajoocuyu32n.cloudfront.net/codiqa.ext.js"></script>

<!-- Socket.IO -->
<script src="socket.io/socket.io.js"></script>

</head>
<body>

<div data-role="page" id="page1">
<div id="register_button" data-role="button" data-transition="slide">
Register
</div>
</div>
</body>

<script>
$(document).on('pageinit','[data-role=page]',function(){
$('#register_button').click(function(){
$('#error_message_label').text('E-mail not set.');
$('#error_message').show();
});
});
</script>

<!--<script src="js/user/register.js"></script>-->

该脚本似乎无法在该设备上运行。当我单击按钮时没有任何反应。

最佳答案

这应该有效:

  1. 将脚本 block 移动到页面 div 内,如下所示:

    <div data-role="page" id="page1">
    <div id="register_button" data-role="button" data-transition="slide">
    Register
    </div>
    <script>
    $(document).on('pageinit','[data-role="page"]',function(){
    $('#register_button').click(function(){
    $('#error_message_label').text('E-mail not set.');
    $('#error_message').show();
    });
    });
    </script>
    </div>
  2. 还要更改您的点击处理,以便最终代码如下所示:

    <div data-role="page" id="page1">
    <div id="register_button" data-role="button" data-transition="slide">
    Register
    </div>
    <script>
    $(document).on('pageinit','[data-role="page"]',function(){
    $(document).on('click','#register_button', function(){
    $('#error_message_label').text('E-mail not set.');
    $('#error_message').show();
    });
    });
    </script>
    </div>

编辑:

为什么它应该在页面 div 内只是一种预感。你没有解释你的应用程序是如何工作的,所以这让我思考。 jQuery Mobile 有一个人们通常不知道的常见问题,官方文档中根本没有描述它。如果您使用多个 HTML 文件,则只有第一个 HTML 文件会完全加载到 DOM 中,其他每个页面将仅加载页面 div,jQuery Mobile 将丢弃其他所有内容。了解更多相关信息here .

另一种可能性是点击事件出现问题。问题是,如果平台速度慢,有时单击事件将不会绑定(bind)到正确的对象。这就是我使用委托(delegate)单击绑定(bind)的原因。它将单击事件绑定(bind)到文档,然后将其传播到正确的元素。基本上元素是否存在于 DOM 中并不重要,因为这种绑定(bind)只关心文档对象。

关于jquery - Phonegap(+ jquery mobile)应用程序在浏览器上运行良好,但在设备上运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16769374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com