Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android/ Phonegap - onClick() not working

I am using phonegap and am trying to detect the onClick, however Android seems to completely ignore it, below is what I am trying:

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

I have tried several variations of the onClick include javascript, jQuery etc. however none of these seem to work.

I have noticed that onChange works, however this is not of much use to me as I need to use a prompt asking the user to confirm the change, if it is no then do nothing. However, using onchange still changes the item within the dropdown.

Can someone please help with this?

like image 883
Raj Avatar asked May 03 '12 16:05

Raj


2 Answers

I had the same problem with jQuery, Android seems to ignore the click event in javascript. Originally, my code with jQuery looks like this:

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

I had to change it to:

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

Not sure if you're using jQuery at all, but hope this helps.

like image 121
user1183085 Avatar answered Sep 21 '22 06:09

user1183085


Add click event listener to your object with javascript. First add an id to object:

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

And then call addEventListener() :

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

Phonegap documentation recomends to run all your javascript code in "deviceready" event. So your code should look like this:

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>
like image 22
Chemik Avatar answered Sep 19 '22 06:09

Chemik