Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery或javascript绑定中分配变量_Javascript_Jquery - Fatal编程技术网

在jquery或javascript绑定中分配变量

在jquery或javascript绑定中分配变量,javascript,jquery,Javascript,Jquery,简短的问题,我怎样才能更有效地编写下面的代码,这样我就不会重复地给父变量赋值了 此绑定函数与使用对象文字相同吗 function bindAuthorPopup() { $(".insight-author").on({ mouseenter: function (event) { var parent = $(this).parent('div').find('.popup-content');

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

此绑定函数与使用对象文字相同吗

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');
            },            
        });
    }

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


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


您可以这样做:

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编写的内容。

您可以这样做:

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编写的内容。

mouseenter和mouseleave看起来都一样?您可以创建一个函数,这样您只需执行
var parent=getParent(此操作)。但是您无法避免在每个处理程序中创建
parent
,因为
这个
可能引用不同的元素。当然,如果在两个处理程序中执行完全相同的操作,只需定义一次函数并将其用于两个事件。mouseenter和mouseleave看起来都一样?您可以创建一个函数,以便只需执行
var parent=getParent(此操作)。但是您无法避免在每个处理程序中创建
parent
,因为
这个
可能引用不同的元素。当然,如果在两个处理程序中执行完全相同的操作,只需定义一次函数并将其用于两个事件。