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

2023-05-19,,

网上查看后发现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使用不熟练,就将遇到的问题及解决过程记录在博客园。菜鸟成长中

关于ul点击事件委托给li时的鼠标拖动问题的相关教程结束。

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

下载本文的Word格式文档,以方便收藏与打印。