0

bind() 関数を使用してさまざまなイベントをバインドできることは明らかです。しかし、特にキーダウンのような引数を取る特定の関数がある場合、構文を理解するのに苦労しています。これが私のコード例です:

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

これら2つのトリガーをバインド/オンにする方法はありますか? popupbg.add(popup).fadeOut(); の重複を避けることができます。声明?同様に(クリックしてキーを押すと(e))これを行います

4

3 に答える 3

1

残念ながら、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 に答える