javascript - 如何使用 javascript 重新着色 Cordova 中的按钮
问题描述
我尝试创建在单击时重新着色的按钮。我的代码如下所示:
function foo(){
var docFrag = document.createDocumentFragment();
for (var i = 0; i < 4; i++) {
var btn = document.createElement("button");
btn.innerText = i;
btn.id = "testbutton" + i;
(function(btnID){
btn.addEventListener("mousedown", function() {
document.getElementById(btnID).style.backgroundColor = "red";
})})(btn.id);
(function(){
btn.addEventListener("mouseup", function() {
doSomethingElse();
})})();
docFrag.appendChild(btn);
}
document.getElementById("buttonContainer").appendChild(docFrag);
}
它确实在我的浏览器中工作,但是当我将代码部署到模拟器时,它只是跳过着色部分或根本不做。我使用“mousedown”的原因是我希望按钮在“mouseup”上做其他事情。我之前尝试过在“点击”时同时进行重新着色和其他功能,但它会完全跳过重新着色,因为新功能会覆盖以前的工作。
解决方案
在移动设备上没有鼠标,所以“mousedown”事件不存在。
我想你应该改用“touchstart”和“touchend”。
=> https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent
推荐阅读
- node.js - 在 nodeJs 中检查来自服务器的重复电子邮件
- java - @RequestScope 在升级到 spring-boot 2.5.6 时不起作用
- c++ - LLVM 加载数组索引
- python - 如何使用 python 从 Instagram 页面解析视频 URL?
- vtk - 如何在程序集中获得实际点击的演员?
- python - 当我使用 Visual Studio Code 运行 Jupyter 笔记本时出现 ImportError
- portforwarding - 在端口转发我的服务器之前有什么我应该关注的吗?
- excel - Excel VBA Countifs 与循环
- algorithm - 垃圾邮件签名比较
- vue.js - 我只需要为带有千位分隔符的整数创建一个正则表达式