首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery On combine

Jquery On combine
EN

Stack Overflow用户
提问于 2012-12-15 06:23:13
回答 3查看 28关注 0票数 0

我正在使用这些函数,它们工作得很好:

代码语言:javascript
复制
    $(document).on('click', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('mouseenter', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('mouseleave', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('keydown', '.profile li', function(e) {
            //Alot of cool code
    });

但我想把它们组合成这样:

代码语言:javascript
复制
    $('.profile li').on({
        mouseenter: function (e) {
             //Alot of cool code
        },
        mouseleave: function (e) {
             //Alot of cool code
        },
        click: function (e) {
            //Alot of cool code
        },
        keydown: function (e) {
            //Alot of cool code
        }
    });

但是,由于它们依赖于在dom之后创建的元素,因此组合代码不起作用。所以我的问题是,有没有办法将它们组合成第二种方式,并且仍然让它们与dom之后创建的类一起工作。另外,将它们组合在一起真的有意义吗?我似乎记得读过一些更好的书,但我记不清为什么,或者这是不是一个梦……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-15 06:32:27

只需传递选择器作为第二个参数,请注意,使用最接近的静态父对象比使用document对象更有效。

代码语言:javascript
复制
$(document).on({
    mouseenter: function (e) {
         //Alot of cool code
    },
    mouseleave: function (e) {
         //Alot of cool code
    },
    click: function (e) {
        //Alot of cool code
    },
    keydown: function (e) {
        //Alot of cool code
    }
}, '.profile li');
票数 3
EN

Stack Overflow用户

发布于 2012-12-15 06:31:50

几天前,我问过一个等效的questions

我的答案很简单,使用我的变通方法gist

所以你可以像这样简单地使用它:

代码语言:javascript
复制
$(document).act(
    ['mouseenter', 'selector1', function() {}],
    ['mouseleave', 'selector2', function() {}],
    ['mousedown', 'selector3', function() {}],
    ['mouseup', 'selector4', function() {}]
);

或者甚至是简单的,没有我的脚本:

代码语言:javascript
复制
$(document).on({
    mouseenter: function() {},
    mouseleave: function() {},
    mousedown: function() {},
    mouseup: function() {}
}, "selector");

但是,这假设您希望对所有这些事件使用相同的选择器。

票数 0
EN

Stack Overflow用户

发布于 2012-12-15 06:32:42

如果.profile是静态元素,可以尝试这样做:

代码语言:javascript
复制
$('.profile').on({
        mouseenter: function (e) {
             //Alot of cool code
        },
        mouseleave: function (e) {
             //Alot of cool code
        },
        click: function (e) {
            //Alot of cool code
        },
        keydown: function (e) {
            //Alot of cool code
        }
    },'li');​​​​
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13887100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档