15

私はphonegapを使用していて、onClickを検出しようとしていますが、Androidはそれを完全に無視しているようです.以下は私が試していることです:

<select name="func" onclick="StartButtons();" data-native-menu="true">

javascript、jQueryなどを含むonClickのいくつかのバリエーションを試しましたが、どれも機能していないようです。

onChange が機能することに気付きましたが、ユーザーに変更の確認を求めるプロンプトを使用する必要があるため、これはあまり役に立ちません。ただし、onchange を使用すると、ドロップダウン内の項目が変更されます。

誰かがこれを手伝ってくれますか?

4

6 に答える 6

11

jQueryでも同じ問題がありました.Androidはjavascriptのクリックイベントを無視しているようです. もともと、jQuery を使用した私のコードは次のようになります。

$("#element").click(function () { alert("message"); });

次のように変更する必要がありました。

$("#element").on("touchend", function () { alert("message"); });

jQuery を使用しているかどうかはわかりませんが、これがお役に立てば幸いです。

于 2013-05-27T16:57:46.063 に答える
4

JavaScript を使用してオブジェクトにクリック イベント リスナーを追加します。まず、id をオブジェクトに追加します。

    <select id="obj_id" name="func" data-native-menu="true">

そして addEventListener() を呼び出します:

    document.getElementById("obj_id").addEventListener("click", StartButtons, false);

Phonegap のドキュメントでは、すべての JavaScript コードを「deviceready」イベントで実行することを推奨しています。したがって、コードは次のようになります。

main.js:

    function StartButtons() { ... }

    function onDeviceReady() {
        ...
        document.getElementById("obj_id")
            .addEventListener("click", StartButtons, false);
        ...
    }

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

index.html:

    ...
        <script type="text/javascript" charset="utf-8" src="main.js"></script>
    </head>
    <body onload="init();">
        ...
        <select id="obj_id" name="func" data-native-menu="true">
        ...
    </body>
于 2012-05-04T10:38:41.067 に答える
2

user1183085の答えは正しいものです。Android は Web アプリのようにクリック イベントを認識しません。モバイル アプリはネイティブの場合は Web ではないため、これは理にかなっています。これが phonegap が作成された理由ですが、ネイティブの Java Android ライブラリではなく jquery で動作するためです。私は自分のコードをこのように置きます:

onclick ですべての Web インターフェイスを処理する Web ボタンまたは要素と、モバイル インターフェイスを処理する ontouchend の特別なボタンまたは要素。これが私のコードの一部です:

//this handles the login button events for the mobile touch of the user
$("button.login-button").on("touchend", function () {alert('hello touch ! =o' )});

//this handles the login button events for web clicks
$("button.login-button").on("click", function () {alert('hello click ! =o' )});

私の人生を永遠に解決してくれたユーザーuser1183085に感謝します=()

于 2016-12-14T15:16:22.557 に答える
0

メソッドが「method();」ではなく「method」に呼び出されるように設定しようとしましたか? したがって、次のように行を試すことができます。

<select name="func" onclick="StartButtons" data-native-menu="true">

次に、うまくいけば、メソッドが呼び出されます。

于 2012-05-03T16:23:42.463 に答える