在jquery on或javascript bind中分配变量

时间:2017-06-21 19:18:05

标签: javascript jquery

简短的问题,我怎样才能更有效地编写下面的代码,这样我就不会重复为父变量赋一个新值?

此绑定功能是否与使用对象文字相同?

function bindAuthorPopup() {
        $(".insight-author").on({
            mouseenter: function (event) {
                var parent = $(this).parent('div').find('.popup-content');
                parent.toggleClass('show');
            },
            mouseleave: function (event) {
                var parent = $(this).parent('div').find('.popup-content');
                parent.toggleClass('show');
            },            
        });
    }

2 个答案:

答案 0 :(得分:3)

您可以这样做:

function bindAuthorPopup() {
    $(".insight-author").each(function() {
        var elem = $(this);
        var parent = elem.parent('div').find('.popup-content');
        elem.on({
            mouseenter: function (event) {
                parent.toggleClass('show');
            },
            mouseleave: function (event) {
                parent.toggleClass('show');
            },
        });       
    });
}

即使回调不同,这也有效。如果它们总是相同,那么你可以使用@ sh1da9440所写的内容。

答案 1 :(得分:1)

您可以将以空格分隔的事件类型传递给“on”方法。

function bindAuthorPopup() {
    $(".insight-author").on('mouseenter mouseleave', function (event) {
        var parent = $(this).parent('div').find('.popup-content');
        parent.toggleClass('show');
    });
}