首页 > 解决方案 > Firefox 中的 jQuery - 事件未定义,为什么?

问题描述

我在 Firefox 中遇到了 jQuery 问题。我不知道为什么我会收到未定义的 e(事件)错误。在 Chrome 和 IE 和 Safari 中工作得很好。

它一直说未定义的事件..我在这里做错了什么?

谢谢!

我的代码:

$(document).ready(function() {

    function handleVideoModal() {
        $('.js-trigger-video-modal').on('click', function(e) {
            e.preventDefault();

            var id = $(this).attr('data-youtube-id');
            var autoplay = '?autoplay=1';
            var related_no = '&rel=0';
            var src = '//www.youtube.com/embed/' + id + autoplay + related_no;

            $('#youtube').attr('src', src);
            $('body').addClass('show-video-modal noscroll');
        });

        function handleCloseModal() {
            event.preventDefault();

            $('body').removeClass('show-video-modal noscroll');

            $('#youtube').attr('src', '');
        }

        $('body').on(
            'click',
            '.close-video-modal, .video-modal .overlay',
            function(event) {
                event.preventDefault();
                handleCloseModal();
            }
        );

        $('body').keyup(function(e) {
            if (e.keyCode == 27) {
                handleCloseModal();
            }
        });
    }
    handleVideoModal();
});

标签: javascriptjquery

解决方案


您的代码逻辑没有问题。这是一个跨浏览器兼容性问题。

尝试window.event改用。

更多细节在这里


推荐阅读