![](/img/trans.png)
[英]Phonegap / Cordova: jQuery post to external server doesn't work
[英]cordova/phonegap onclick doesn't work
我嘗試創建在單擊事件后啟動警報的按鈕。 類似的東西:
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
<button onclick="alert('salut')" id="boutonAlerte">Alerte</button>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script> </body>
但問題是我的 onclick 不起作用。 很多人告訴我在 javascript 上嘗試它,所以我決定寫這樣的東西:
function onAlertClick() {
alert("ceci est une alerte");
}
alert("test2");
var bA = document.getElementById("boutonAlerte");
bA.addEventListener("onclick", onAlertClick());
但這是同樣的事情。
有任何想法嗎 ?
嘗試添加jQuery click事件,該事件在我的cordova應用中正常運行
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.js"></script>
<script type="text/javascript">
$("#boutonAlerte").click(function(){
alert("ceci est une alerte");
});
</script>
這是JSFiddle鏈接
解
//更改t2
內容的函數
function modifyText() {
var t2 = document.getElementById("t2");
if (t2.firstChild.nodeValue == "three") {
t2.firstChild.nodeValue = "two";
} else {
t2.firstChild.nodeValue = "three";
}
}
//將事件監聽器添加到表
var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);
在用戶的應用程序上不會觸發onclick,因為用戶不是“點擊”,而是“點擊”。 您可以使用像Ionic這樣的體面的移動框架,並使用ng-click
,它會自動為您解決問題,因為它包含ngTouch
。
如果您不想使用像angular這樣的大型框架,則可以使用Zepto.js
,並使用$(".element").on('tap', callback);
Zepto.js
監聽點擊事件。 或$(".element").on('tap click', callback);
監聽點擊和點擊事件。
Chrome開發人員工具具有良好的移動仿真功能,可以觸發點擊事件。 如果您想在Chrome中調試應用,這可能會有所幫助。
我聽說點擊使“點擊”事件起作用。 訣竅是以這種方式將 css cursor 屬性添加到“指針”,當用戶點擊觸發點擊事件時。
這是使用此技巧的一些示例:
function clickEvent(element, callback){
element.setAttribute("style", "cursor: pointer;");
element.addEventListener("click", callback);
}
clickEvent(document.getElementById("mybutton"), function(){
alert("Clicked");
});
通過使用函數“clickEvent”,你可以讓“click”工作
定義一個供以后使用的點擊處理程序:
var clickHandler = ('ontouchstart' in document.documentElement ? "touchstart" : "click");
$("a").bind(clickHandler, function(e) {
alert("clicked or tapped. This button used: " + clickHandler);
});
這將觸發非觸摸設備上的點擊,並觸發觸摸設備上的touchstart。
話雖如此,我強烈建議您改為使用“快速點擊”,並使用常規點擊事件。 使用上述解決方案,例如,當您在鏈接上滑動以滾動頁面時,您將在鏈接上觸發“ touchstart”-這並不理想。
您可以嘗試執行以下操作:
$("#boutonAlerte").on('click', function(){
alert("Clicked!");
});
然后從按鈕標簽中刪除onclick
,並確保您在HTML o課程中包括了jQuery庫。
如果只想使用JavaScript,則應該執行以下操作:
<button onclick="myFunction();" id="boutonAlerte">Alerte</button>
<script>
function myFunction(){
alert("clicked!");
}
</script>
這是一個jQuery示例
HTML
<a href="#" class="start-button">EXECUTE</a>
jQuery的
$(".start-button").click(function (e) { //note that 'onclick="HandleExec();return false;" doesnt work
e.preventDefault();
// here you can handle the click code you wanted
});
確保您調用event.preventDefault(); 因此它不會嘗試轉到html標簽中的href。 在這種情況下,這只會重新加載cordova應用程序。
實際上,解決方案非常簡單。 您希望使click事件起作用的所有元素都應具有CSS規則“ cursor:pointer;”。
您可以在這里找到一個有效的示例: https : //haensel.pro/apache-cordova/apache-cordova-ios-click-event-not-working-quick-how-to
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.