JavaScript30 Day 10

这是我在github 上发现的一个原生js挑战项目,由于是js小白,希望通过这次的项目加深对js的理解

第十天实现了按住shift进行多选的操作

效果图

过程指南

1.选中一个复选框
2.按住shift选择另一个复选框
3.两个复选框之间的项会改变状态

    const checkboxes = document.querySelectorAll('.inbox input[type="checkbox"]');
    let lastChecked;
    function handleChecked(e){
        let inBetween = false;
        if(e.shiftKey && this.checked) {
            console.log("yes");
            checkboxes.forEach(checkbox => {
                console.log(checkbox);
                if (checkbox === this || checkbox === lastChecked) {
                    inBetween = !inBetween;
                }
                if (inBetween) {
                    if (checkbox.checked === true) {
                        checkbox.checked = false;
                    } else {
                        checkbox.checked = true;

                    }
                }
            });
            console.log(this);
        }
        lastChecked = this;
    }
    checkboxes.forEach(checkbox => checkbox.addEventListener("click",handleChecked));

本次练习主要使用了 inBetween 来确认是否处于两个复选框之间,lastChecked代表上次选中的复选框,没什么难度


以上就是我在day10中学到的知识,这里我同样参考了soyaine的中文指南,感谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容