Cordova/Phonegap OnClick 不起作用
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>
但问题是我的点击不起作用。很多人告诉我在javascript上尝试一下,所以我决定写这样的东西:
function onAlertClick() {
alert("ceci est une alerte");
}
alert("test2");
var bA = document.getElementById("boutonAlerte");
bA.addEventListener("onclick", onAlertClick());
但这是一回事。
有什么想法吗?
尝试添加 jQuery 点击事件,这在我的 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链接
https://jsfiddle.net/9v85ku5y/
解决方案
更改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 不会在 cordova 应用程序上触发,因为用户不会"点击",而是"点击"。您可以使用像 Ionic 这样的体面的移动框架,并使用 ng-click
,它会自动为您解决问题,因为它包含ngTouch
.
如果你不想使用像 angular 这样的大框架,你可以使用 Zepto.js
,并使用 $(".element").on('tap', callback);
来监听点击事件。或者$(".element").on('tap click', callback);
侦听点击和点击事件。
Chrome 开发工具具有良好的移动仿真功能,可以触发点击事件。如果您想在 Chrome 中调试应用,这可能会有所帮助。
我听说点击使"点击"事件起作用。诀窍是在用户点击触发单击事件时以这种方式将 css 光标属性添加到"指针"。
以下是使用此技巧的一些示例:
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);
});
这将触发非触摸设备上的点击和触摸设备上的触摸启动。
话虽如此,我强烈建议改用快速点击,并使用常规点击事件。使用上述解决方案,例如,当您在链接上滑动以滚动页面时,您将在链接上触发"触摸启动" - 这并不理想。
您可以尝试执行以下操作:
$("#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。在这种情况下,这将重新加载科尔多瓦应用程序。
实际上,解决方案非常简单。您希望让单击事件处理的所有元素都应具有 CSS 规则"cursor: 指针;"
您可以在此处找到一个工作示例:https://haensel.pro/apache-cordova/apache-cordova-ios-click-event-not-working-quick-how-to
- 当z索引为负值时,onclick在webkit或mozilla中不起作用
- 为什么body元素上的onclick事件不起作用
- onclick事件在asp.net上不起作用
- .hasClass 在 onclick 函数中不起作用,但删除和添加类函数可以
- onClick()不起作用
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- 复选框.onClick在firefox中不起作用
- 第二个事件[onClick]不起作用
- Jquery Onclick 事件函数第二次不起作用
- OnClick 事件在 Chrome 中不起作用
- Image Map 在 FF 和 IE 中不起作用(使用 onclick javascript)
- 用JavaScript编写的HTML代码(带有onclick())不起作用
- 如果 onclick 和 onselect 中的语句在 ASP.NET 不起作用
- Cordova/Phonegap OnClick 不起作用
- Javascript onClick() 事件在动态使用时不起作用
- onClick 事件在表单标记中不起作用
- onClick javascript不起作用
- 将onclick事件附加到元素不起作用
- 同时使用OnClick和OnClientClick;不起作用
- PHP onclick'不起作用