V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yantianqi
V2EX  ›  jQuery

jquery 循环绑定事件问题

  •  
  •   yantianqi · 2016-11-17 17:05:28 +08:00 · 3152 次点击
    这是一个创建于 2935 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>title</title>
    <script src="jquery.js"></script>
    </head>
    <body>
    <ul>
    <li>1</li>
    <li>2</li>
    </ul>
    </body>
    <script>
    var lis = $("li");
    for(var i=0; i<lis.length; i++){
    lis[i].mouseover(function() {//lis[i]绑定事件不可以?那应该怎么样给每个 li 绑定时间
    //
    })
    }
    </script>
    </html>
    13 条回复    2016-11-17 22:01:40 +08:00
    murmur
        1
    murmur  
       2016-11-17 17:07:05 +08:00   ❤️ 2
    妈呀这个代码。。
    算了建议你再看一天的书再去写代码
    源生的 addEventListener
    降级的直接指定 onmouseover
    jquery 的$(xxxx).on 或者$(xxx).mouseover
    你这个是什么呢。。
    tobeyouth
        2
    tobeyouth  
       2016-11-17 17:08:54 +08:00   ❤️ 3
    直接 $(li).on(xxx) 不就行了么
    murmur
        3
    murmur  
       2016-11-17 17:09:02 +08:00   ❤️ 1
    这排版真影响阅读
    如果没看错,注释那行改成$(lis[i]).mouseover 就对了

    虽然 lis 是 jquery object ,但是里面的每一个元素是源生的对象,要 jq 选一下
    这种情况下,直接写$("li").mouseover 不是更好么

    我只是就代码而已,不代表你这是最佳的编码习惯,注意
    jarlyyn
        4
    jarlyyn  
       2016-11-17 17:16:47 +08:00   ❤️ 1
    1. $('li').mouseover(xxx)
    2.$('body').on('mouserover,'li'',xxx)
    yantianqi
        5
    yantianqi  
    OP
       2016-11-17 17:29:13 +08:00
    @murmur 大神,请问怎么排版?要用 markdown 语法是吗?
    hareandlion
        6
    hareandlion  
       2016-11-17 17:31:28 +08:00 via iPhone
    只是用 foreach 不用 for 循环的问题吧
    yantianqi
        7
    yantianqi  
    OP
       2016-11-17 17:32:19 +08:00
    原来 jq 处理这个这么简单
    JohnLou
        8
    JohnLou  
       2016-11-17 17:33:27 +08:00
    jquery 不等于 js , jquery 不等于 js ,请买一本《 dom 编程艺术看看》有助于你理解。
    bombless
        9
    bombless  
       2016-11-17 17:35:12 +08:00
    v 站不支持 markdown 啊……
    我所知道的就是可以放 gist.github.com ,其他的话貌似 v 站是会吞行首的空格的……
    可以试试用其他空白,哈哈
    jarlyyn
        10
    jarlyyn  
       2016-11-17 17:40:55 +08:00
    另外就楼主本身的代码来说,楼主需要知道

    jQuery(xxx).eq(1)和 jQuery(xxx)[1]的区别

    后者返回的是 Dom
    xilixjd
        11
    xilixjd  
       2016-11-17 17:48:36 +08:00
    lis.on('monseover', 'li', function() {

    });
    novaline
        12
    novaline  
       2016-11-17 21:25:52 +08:00
    事件代理
    4641585
        13
    4641585  
       2016-11-17 22:01:40 +08:00
    @bombless
    虽然 V 站的 Markdown 不能渲染语法高亮,但也足够把代码表现得很好了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2330 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:48 · PVG 09:48 · LAX 17:48 · JFK 20:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.