关于ul点击事件委托给li时的鼠标拖动问题

网上查看后发现Click可以被两个事件触发:mouseUp与mouseDown,即点击和松开时都会触发一次。

随后当我从一个li点击拖动到其他li松开时,触发的事件对象因为冒泡变成了父元素ul,并非我们想要的当前触发对象li。在ul点击事件时添加触发事件对象判断即可:

    var majorContentDown = document.querySelector(".majorContentDown");//获取ul
    var major = document.querySelector("#major");//获取input
    function clickLi(obj, whosValue) {
        obj.addEventListener('click', function (e) {
          
            if (e.target === obj) {
                whosValue.value = "请勿拖动";
            }
            else {
                whosValue.value = e.target.innerHTML;
                whosValue.style.color = "black";
            }
        }, false);//允许冒泡
    }
    clickLi(majorContentDown, major);
 
以上是我在搞学年设计时,利用事件冒泡将点击的li中的innerHTML给到表单input中,正常点击是没问题的,调试时发现拖动后事件触发对象不是鼠标松开所在的li,JS将ul中的内容全给了input。github使用不熟练,就将遇到的问题及解决过程记录在博客园。菜鸟成长中

 

posted on 2022-08-22 22:23  xiaoxiaowu1314  阅读(47)  评论(0编辑  收藏  举报