为什么事件“ fadein”在JS中运行两次?

时间:2019-07-24 04:05:59

标签: javascript jquery

按esc键或其他任何键使弹出窗口消失(例如 event.keycode == 37 or else)没有问题。但是,按Enter键后,弹出窗口消失,弹出窗口再次弹出。有什么问题吗?

    $(related-popup-open-button-id).on('click', fadeIn);

    functionfadeIn () {
        $(related-popup-id).fadeIn(1000);
    };

    $(related-popup-close-button-id).on('click', fadeOut);

    function fadeOut () {
        $(related-popup-id).fadeOut(1000);
    };

    $(document).on('keydown', push);

    function push(event) {
        if(event.keycode == 13) {
            $(related-popup-id).fadeOut(1000);
        }
    };

对不起,我在下面添加了jsfiddle链接。

jsfiddle

1 个答案:

答案 0 :(得分:0)

打开弹出窗口时只需更改焦点。

$('#popup-open-btn').on('click', fadeShow);

function fadeShow () {

    $('#popup').fadeIn(500);
    $("#popup-close-btn").focus();
};

$('#popup-close-btn').on('click', fadeClose);

function fadeClose () {
    $('#popup').fadeOut(500);
};

$(document).on('keydown', push);

function push(event) {
    if(event.which === 13) {
        $('#popup').fadeOut(500);
    }
};

https://jsfiddle.net/b8yhtkxz/