V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
uti6770werty
V2EX  ›  JavaScript

根据“批量对象元素集合”,去应用脚本的 onmousemove 动作,如何实现?

  •  
  •   uti6770werty · 2021-01-15 17:06:58 +08:00 · 1485 次点击
    这是一个创建于 1400 天前的主题,其中的信息可能已经有所发展或是发生改变。
        adiv=document.getElementById('adiv');
        bdiv=document.getElementById('bdiv');
        cdiv=document.getElementById('cdiv');
        // .....
        // ...
        // .
        // 略
        zdiv=document.getElementById('zdiv');
    
        //只对一个元素进行应用
        bdiv.onmousemove = function (activeelement) {
            //xxxx
        }
    

    是不是只能对每个 div 元素重复地写 onmousemove 函数?
    有优雅的批量写法吗?

    4 条回复    2021-01-16 03:58:23 +08:00
    Rhilip
        1
    Rhilip  
       2021-01-15 17:49:52 +08:00
    这为啥不上个循环?或者如果 id 命名有规律,直接使用 querySelectorAll 来选择
    doucument.querySelectorAll("xxxxx").map(x => x.onmousemove = () => {})
    musi
        2
    musi  
       2021-01-15 19:09:06 +08:00
    事件委托了解一下?
    shenyuzhi
        3
    shenyuzhi  
       2021-01-15 20:41:21 +08:00
    在 body 上监听,然后在 target 上 dispatch
    dd112389
        4
    dd112389  
       2021-01-16 03:58:23 +08:00
    window.addEventListener('mousemove', function (e) {
    // adiv or bdiv or cdiv......
    let target = e.target;
    });
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4994 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.