我尝试创建一个按钮,在单击事件后启动警报。这样的事情:
<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());
但这是一回事。
有什么想法吗?
答案 0 :(得分:2)
尝试添加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链接
答案 1 :(得分:2)
解决方案
//更改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);
答案 2 :(得分:1)
onclick不会在cordova应用上被触发,因为用户不会“点击”,而是“点击”。您可以使用像Ionic这样的体面移动框架,并使用ng-click
,它会自动为您解决问题,因为它包含ngTouch
。
如果您不想使用角度等大型框架,可以使用Zepto.js
,并使用$(".element").on('tap', callback);
来监听点按事件。或$(".element").on('tap click', callback);
收听点击和点击事件。
Chrome开发工具具有良好的移动仿真功能,可触发点击事件。如果您想在Chrome中调试应用程序,可能会有所帮助。
答案 3 :(得分:1)
我听说点击可以使“点击”事件起作用。诀窍是当用户点击触发点击事件时,以这种方式将 css cursor 属性添加到“指针”。
以下是使用此技巧的一些示例:
function clickEvent(element, callback){
element.setAttribute("style", "cursor: pointer;");
element.addEventListener("click", callback);
}
clickEvent(document.getElementById("mybutton"), function(){
alert("Clicked");
});
通过使用“clickEvent”函数,你可以让“click”工作
答案 4 :(得分:0)
定义一个稍后可以使用的点击处理程序:
var clickHandler = ('ontouchstart' in document.documentElement ? "touchstart" : "click");
$("a").bind(clickHandler, function(e) {
alert("clicked or tapped. This button used: " + clickHandler);
});
这将触发点击非触摸设备并触摸触摸设备上的触摸屏。
如果这样说,我强烈建议您使用快速点击,并使用常规点击事件。使用上述解决方案,当您在其上滑动以滚动页面时,您将在链接上触发“touchstart” - 这是不理想的。
答案 5 :(得分:0)
您可以尝试执行以下操作:
$("#boutonAlerte").on('click', function(){
alert("Clicked!");
});
然后从按钮标记中删除onclick
,并确保在HTML o课程中包含jQuery库。
如果您只想使用JavaScript,请执行以下操作:
<button onclick="myFunction();" id="boutonAlerte">Alerte</button>
<script>
function myFunction(){
alert("clicked!");
}
</script>
答案 6 :(得分:0)
这是一个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应用。
答案 7 :(得分:-1)
实际上,解决方案非常简单。 您希望使click事件起作用的所有元素都应具有CSS规则“ cursor:pointer;”
您可以在此处找到一个有效的示例: https://haensel.pro/apache-cordova/apache-cordova-ios-click-event-not-working-quick-how-to