0

我读到过,您显然可以使用 bind() 函数绑定不同的事件。但是我在理解语法时遇到了麻烦,尤其是当有像 keydown 这样的特定函数需要参数时。这是我的代码示例:

            $('#closePopup').click(function(){
                popupbg.add(popup).fadeOut();
            });
            $(document).keydown(function(e){
                if(e.keyCode==27){
                    popupbg.add(popup).fadeOut();
                }
            });

有没有办法绑定/在这两个触发器上,所以我可以避免重复 popupbg.add(popup).fadeOut(); 陈述?喜欢(点击和按键(e))这样做

4

3 回答 3

1

不幸的是,您不能在一个语句中将不同的事件绑定到不同的对象。

您可以将该代码放在一个函数中并在两个事件中调用该函数以避免重复代码:

function closePopupbg(){
    popupbg.add(popup).fadeOut();
}

$('#closePopup').click(closePopupbg);
$(document).keydown(function(e){
    if(e.keyCode==27){
        closePopupbg();
    }
});
于 2012-05-10T13:15:57.467 回答
0

在我看来,您想popupbg.add(popup).fadeOut();在一个函数中定义,然后从您定义的许多事件中调用它:

    var someFunctionName = function(){
         popupbg.add(popup).fadeOut();
    };

    $('#closePopup').click(function(){
        someFunctionName();
    });
    $(document).keydown(function(e){
        if(e.keyCode==27){
            someFunctionName();
        }
    });

* 编辑 ** 我没有以任何方式测试此代码,它仅用于演示目的,所以请不要就准确性、范围或任何类似问题给我打电话:)。

于 2012-05-10T13:15:41.830 回答
0

您还可以触发click事件:

$('#closePopup').click(function() {
    popupbg.add(popup).fadeOut();
});

$(document).keydown(function(e) {
    if (e.keyCode == 27) {
        $('#closePopup').trigger('click');
    }
});​
于 2012-05-10T13:20:25.477 回答