2012-05-03 38 views
14

我使用PhoneGap的,我試圖檢測的onClick,但是Android的似乎完全忽略它,下面就是我想:的Android/PhoneGap的 - 的onClick()不工作

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

我嘗試了好幾種onClick的變體包括JavaScript,jQuery等,但這些似乎都不起作用。

我已經注意到onChange的工作原理,但是這對我沒有太大用處,因爲我需要使用提示要求用戶確認更改,如果不是,那麼什麼都不做。但是,使用onchange仍會更改下拉列表中的項目。

有人可以幫忙嗎?

+0

你有沒有嘗試通過JavaScript連接呢?它更乾淨,可能有更好的支持。只需添加一個id到select然後'document.getElementById('foo')。onclick = StartButtons;' – GillesC

回答

0

你有沒有嘗試設置你的方法被稱爲「方法」,而不是「方法();」?因此,也許你可以試試你的路線爲:

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

然後希望你的方法將被調用。

+0

我以前試過這個,不幸的是它沒有工作,還有其他想法?謝謝 –

+3

'StartButtons'是一個指向函數的指針。 'StartButtons()'將執行該功能。 – Omeriko

4

使用javascript爲您的對象添加單擊事件偵聽器。首先添加一個ID爲對象:

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

然後調用addEventListener():

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

PhoneGap的文檔recomends運行在 「deviceready」 事件的所有JavaScript代碼。所以,你的代碼應該是這樣的:

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> 
+0

不幸的是,這並沒有奏效,Android似乎完全忽略了這些調用。任何其他想法? –

+0

另外,我沒有注意到onChange工作,但是這對我沒有太大的用處,因爲我需要使用提示詢問用戶是否想要更改,如果不是,那麼會忽略它(但是使用onchange仍然會更改內的項目dopbox)。謝謝 –

11

我與jQuery的同樣的問題,安卓似乎忽視了點擊事件JavaScript的。本來,我用jQuery代碼如下所示:

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

我不得不將其更改爲:如果你使用jQuery在所有

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

不知道,但希望這有助於。

1

小心,綁定在科爾多瓦3.4輸入onclick,不起作用。但它與div元素很好。考慮到,輸入元素是表單元素的一部分,比如select元素,它可能是你的問題。

0

https://ssl.gstatic.com'unsafe-eval'; style-src'self''unsafe-inline';媒體SRC *「>

從index.html的

+0

'編輯必須至少有6個字符;在這篇文章中還有什麼可以改進的地方嗎? - 哦哦。 – fWd82

1

user1183085's的答案是正確的刪除此代碼。Android不承認單擊事件Web應用程序做的,這使得SENCE,因爲移動應用不是網絡當原生的,所以這就是爲什麼phonegap,但因爲它與jquery,而不是原生Java android庫直接工作。我把我的代碼這樣:

web按鈕或元素onclick處理所有的網頁界面和特殊按鈕或者處理移動接口的元件。Here's我的代碼的一部分:

//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,就解決了我的一生=()

+0

請閱讀如何使用標記格式化您的答案。現在,它非常接近,因爲它很難閱讀,所以應該得到低價。換句話說:你希望你的答案有幫助,而不僅僅是一些文本混亂。 – GhostCat

+0

對不起,我是新的......我的錯誤,我讀過它。感謝您的建議 – Prometeo