Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phonegap(Cordova)iOS按钮单击_Ios_Cordova - Fatal编程技术网

Phonegap(Cordova)iOS按钮单击

Phonegap(Cordova)iOS按钮单击,ios,cordova,Ios,Cordova,我正在尝试为iOS创建一个非常简单的phone gap应用程序。我正在使用手机查询。问题是,我无法让javascript事件在单击按钮时触发。 我现在有: <!DOCTYPE html> <html> <head> <title>Title</title> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scal

我正在尝试为iOS创建一个非常简单的phone gap应用程序。我正在使用手机查询。问题是,我无法让javascript事件在单击按钮时触发。
我现在有:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="js/jquery.mobile-1.2.0.css" />
    <script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.2.0.min.js"></script>
    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
        }

        function showAlert() {
            navigator.notification.alert("Cordova is working");
        }

    </script>
</head>
<body>
    <div data-role="page" id="options" data-add-back-btn="true" data-back-btn-text="Atgal">
        <div data-role="header" data-position="fixed">
            <h1>Title</h1>
        </div>
        <div data-role="content">
            <h1>Alert</h1>
            <p><a href="#" onclick="showAlert(); return false;" data-role="button">Show alert</a></p>
        </div>
    </div>
</body>
</html>

标题
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数ondevicerady(){
}
函数showAlert(){
navigator.notification.alert(“Cordova正在工作”);
}
标题
警觉的

我尝试了多种解决方案来解决我的问题,但没有一种有效。当在href中使用带有#的按钮时,它不会在单击时更改颜色。当我添加url时,它会改变颜色。但它从不调用javascript函数。 另一个问题是,
document.addEventListener(“deviceready”,onDeviceReady,false)仅在索引页中起作用。若我在初始页面中按下按钮,该按钮将重定向到另一页面,则永远不会调用OnDeviceReady函数。

有人有什么想法吗?

ondevicerady()
只调用一次(当设备(即Cordova)就绪时)。您需要
$(document).on('pageinit','#pageid',function(){})

ondevicerady()
只调用一次(当设备(即Cordova)就绪时)。您需要
$(document).on('pageinit','#pageid',function(){}),以便在每次导航页面时触发某些内容。

使用jQuery尝试以下操作:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="js/jquery.mobile-1.2.0.css" />
    <script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.2.0.min.js"></script>
    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
        }

        function showAlert() {
            navigator.notification.alert("Cordova is working");
        }

        $(function() {
            $("#my_link").click(function() {
                showAlert();
            });
        });

    </script>
</head>
<body>
    <div data-role="page" id="options" data-add-back-btn="true" data-back-btn-text="Atgal">
        <div data-role="header" data-position="fixed">
            <h1>Title</h1>
        </div>
        <div data-role="content">
            <h1>Alert</h1>
            <p><a id="my_link" href="#" data-role="button">Show alert</a></p>
        </div>
    </div>
</body>
</html>

标题
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数ondevicerady(){
}
函数showAlert(){
navigator.notification.alert(“Cordova正在工作”);
}
$(函数(){
$(“#我的链接”)。单击(函数(){
showarert();
});
});
标题
警觉的


希望这有帮助。请告诉我您的结果。

使用jQuery尝试以下操作:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="js/jquery.mobile-1.2.0.css" />
    <script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.2.0.min.js"></script>
    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
        }

        function showAlert() {
            navigator.notification.alert("Cordova is working");
        }

        $(function() {
            $("#my_link").click(function() {
                showAlert();
            });
        });

    </script>
</head>
<body>
    <div data-role="page" id="options" data-add-back-btn="true" data-back-btn-text="Atgal">
        <div data-role="header" data-position="fixed">
            <h1>Title</h1>
        </div>
        <div data-role="content">
            <h1>Alert</h1>
            <p><a id="my_link" href="#" data-role="button">Show alert</a></p>
        </div>
    </div>
</body>
</html>

标题
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数ondevicerady(){
}
函数showAlert(){
navigator.notification.alert(“Cordova正在工作”);
}
$(函数(){
$(“#我的链接”)。单击(函数(){
showarert();
});
});
标题
警觉的


希望这有帮助。让我知道你的结果。

我是一个完全不懂电话和手机查询的人,所以我犯了一个愚蠢的错误。问题是,当我点击按钮时,它不会加载整个页面,而只加载主体部分。这意味着,它只使用第一页中的javascript。这就是我的问题。现在我把所有的javascript都放进了一个单独的文件中(两个文件都是javascript),并且都能正常工作。

我是一个完全没有手机间隙和手机查询的人,所以我犯了一个愚蠢的错误。问题是,当我点击按钮时,它不会加载整个页面,而只加载主体部分。这意味着,它只使用第一页中的javascript。这就是我的问题。现在,我已经将所有javascript放入单独的文件中(两个文件都是javascript),它可以工作。

在body标记中,您需要添加标记,javascript中的onBodyLoad()函数应该如下所示:

   function onBodyLoad()
    {       
      document.addEventListener("deviceready", onDeviceReady, false);
    }

在body标记中,您需要添加标记,javascript中的onBodyLoad()函数应该如下所示:

   function onBodyLoad()
    {       
      document.addEventListener("deviceready", onDeviceReady, false);
    }

即使我将md按钮的z-index设置得更高,它仍然不会点击iOS。它在安卓上点击得很好。在我的例子中,我必须将父容器
设置为z-index:-1;然后它工作了。

即使我将md按钮的z索引设置得更高,它仍然不会点击iOS。它在安卓上点击得很好。在我的例子中,我必须将父容器
设置为z-index:-1;然后它起作用了。

不知道为什么,但这也不起作用。即使是$(document).ready也没有帮助。不知道为什么,但这也不起作用。即使$(document).ready也没有帮助。我尝试了以下方法:
。按钮看起来像在工作(单击时更改颜色),但什么也没发生。我尝试了这个:

。按钮看起来像在工作(点击时改变颜色),但什么也没发生。