javascript - javascript中复选框的奇怪行为
问题描述
我正在尝试创建一个 Web 应用程序来自定义马头像,所以我有一个画布,其中加载了马的一部分,面部标记是可以通过复选框选择然后加载到画布内的部分之一。允许用户选择多个复选框,因此加载多个标记面。
当我选中多个复选框时,假设我已按顺序选中复选框 1、2 和 3,图像在画布内加载就好了,但是当我取消选中复选框 1 时,不是删除与复选框 1 相关的图像,而是删除与复选框相关的图像到我点击的最后一个复选框 3。我不知道我是否很好地解释了这个问题,但这里有一个显示问题的短视频:https ://youtu.be/_gPSCuJusqc
这是我为javascript中的所有复选框编写的代码:
document.getElementById('markingBtn15').addEventListener('change', function() {
if (k15.checked==true){
matrixIndex=14;
markingMatrix[matrixIndex][0].src="https://cdn.shopify.com/s/files/1/0591/0741/0083/files/lowresmarking15.png"
markingMatrix[matrixIndex][0].onload = function(){
buildhorse();
}
}else{
markingMatrix[matrixIndex][0].src="";
buildhorse();
}
});
解决方案
根据给定的少量代码,很难准确地确定您要做什么,但是如果您要拥有一堆复选框,您可能希望拥有一些布尔值的全局数组来跟踪哪个框被检查,哪个不是。
var boxValues = [true, false, false, false, false];
然后是一组匹配的图像
var images = [image1, image2, image3, image4, image5];
然后每次单击一个框时,将其映射到一个索引值并使用该索引值来更新 boxValues 和图像并刷新屏幕,以使一切保持同步。
这些帮助有用?
推荐阅读
- permissions - 哪些是网站的正确权限
- python - 通过 ssh 执行 pyqt 文件
- path - 设置cygwin
- python - 如何在数据库的一列中获取和存储 2 个值?Python Flask SQLAlchemy
- html - 如何将一个div放在另一个div之上
- python - Python 脚本比运行另一个 Python 脚本 ffmpeg2vmaf
- f# - FSharp - 基于数组的匹配和返回记录的意外行为
- javascript - Odoo:如何在网站前端覆盖 JS 函数(例如模块 website_sale.validate 中的函数 payment_transaction_poll_status)?
- netbeans - 在 Netbeans PHP 中禁用评论自动格式化?
- node.js - 创建一个能够处理远程转发的节点 SSH2 服务器