网上查看后发现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时的鼠标拖动问题的更多相关文章

  1. [JS]笔记14之事件委托

    -->什么是事件委托-->事件委托原理-->事件委托优点-->事件源 / 目标源 一.什么是事件委托 通俗的讲,onclick,onmouseover,onmouseout等这 ...

  2. 关于事件委托的整理 ,另附bind,live,delegate,on区别

    随着DOM结构的复杂化和Ajax等动态脚本技术的运用导致如今的js界里最火热的一项技术应该是‘事件委托(event delegation)’了,什么是事件委托呢?小七给你娓娓道来,说白了就是想给子元素 ...

  3. jQuery--事件, 事件绑定, 阻止事件冒泡, 事件委托,页面载入后函数

    1.常用事件, 按住shift键实现同步选择效果,搜索框联想效果 2.阻止事件冒泡 3.事件委托 4.使用 $(document).ready(function (){...}) 实现文件加载完绑定事 ...

  4. js 事件委托 事件代理

    JavaScript高级程序设计上解释:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 通过例子类比: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三 ...

  5. JavaScript / JQuery事件委托如何实现?

    一:什么是事件委托? 事件委托是利用事件冒泡,只指定一个事件处理程序来管理某一类型的所有事件. 事件委托就是利用事件冒泡原理实现的! 事件冒泡:就是事件从最深节点开始,然后逐步向上传播事件: 例:页面 ...

  6. JS事件委托(代理)学习笔记

    在开始之前我们先来熟悉一下HTML DOM addEventListener()方法,该方法用于向指定元素添加事件句柄.语法说明如下图所示: 主要想强调一下第三个参数useCapture,默认值为fa ...

  7. 事件处理& 事件委托& 区别mouseover与mouseenter

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理

    window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理 写PC下拉菜单的时候,hover样式显示下拉菜单,可能会这样写 <li class="xb_li1" ...

  9. JQuery中的事件委托

    JQuery 中的事件委托 定义 事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能:其次可以让新元素的子元素也可以拥 ...

  10. JavaScript(jQuery)中的事件委托

    一:什么是事件委托? 事件委托是利用事件冒泡,只指定一个事件处理程序来管理某一类型的所有事件. 二:为什么要用事件委托? 1.在JavaScript中添加到页面上的事件处理程序的个数直接关系到页面的整 ...

随机推荐

  1. 24 Django模块的导入--常用总结

    常用模块导入 1 forms # forms组件的使用 from django import forms 2 ValidationError # modelform报错时使用 from django. ...

  2. leetcode-560-和为 K 的子数组

    给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 . 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:num ...

  3. vs2013如何添加扩展库函数

    本文仅针对C和C++ vs2013下载C/C++编译器后,能够包含常见的头文件,stdlib.h,stdio.h,math.h这些.如果有其他需求例如:调用GL/glfw32.h,freeglut.h ...

  4. react-signature-canvas 签名功能

    基于移动端需要扫码签名的功能,这里记录一下. 1.使用 react-signature-canvas 插件,npm i react-signature-canvas --save 2.此功能签名后生成 ...

  5. 龙中华著《Spring Boot实战派》读书笔记之入门篇

    第一章 进入Spring Boot的世界 理念:默认大于配置.有很多集成好的方案,开箱即用.针对痛点:环境配置耗时. 1.1 Spring Boot 的特色: 使用简单 注解方式实现类的定义和功能开发 ...

  6. 图模配置文件之 mdimport.ini

    mdimport.ini文件是图模导入中最最最关键的一个配置文件,其中既包含图模导入程序model_import.model_debug相关的配置,也包含红黑图管理界面显示及应用相关的配置信息,还包含 ...

  7. 版本不兼容(NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank)

    "C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspri ...

  8. 1007.Django模型基础02

    一.常用的查询 常用的查询方法(注:User为app项目): 获取所有的记录: rs = User.objects.all() 获取第一条数据:rs = User.objects.first() 获取 ...

  9. 搭建Angular基础项目学习

    https://stackblitz.com/借助StackBlitz网站可快速开始搭建一个angular项目 一个angular的component包含三项东西 A component class  ...

  10. 什么是js柯里化(curry)?

    在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术. 举例来说,一个接收3个参数的普通函数,在进行柯里化后,柯里化版本的函数接收一个参数并返回接收下一个参数 ...