function - jQuery 函数重复

标签 function lightbox jquery

我正在制作自己的灯箱,关闭灯箱并再次打开后遇到问题。

这是简单的功能代码

(function($) {
    $.fn.lghtbx = function() {
        var lghtbxLink = $(this);
        lghtbxLink.click(function() {
            $('body').append("<div id=\"ZoomGallery\"></div>");
            $('#ZoomGallery').css({'width': '100%','height': '100%', 'position': 'absolute', 'left': '0px', 'top': '0px', 'backgroundColor':'#000'});

            $('#ZoomGallery').live('click',function() {
                $('#ZoomGallery').remove();
            })

            $(document).keydown(function(event) {
                switch (event.keyCode) {
                    case 37://left
                    alert('left!');
                    break;
                }
            })
        })
    }
})(jQuery);

我这样调用该函数

$(document).ready(function() {
    $('.lightbox').lghtbx();
});

这是简单的 html

<a class="lightbox" href="#">a</a>

当我单击链接并按键盘上的向左箭头时,会出现警报。这就是它应该如何工作的。但是,当我通过单击黑色 div 关闭灯箱并通过单击链接再次打开它时,问题就会出现。每次我单击向左箭头时,我都会收到两次警报。如果我关闭并再次打开灯箱并按向左箭头,我将收到三次警报......依此类推。

你能帮我解决这个问题吗?

最佳答案

首先删除旧事件

$(document).unbind("keydown").keydown(function(event) {

关于function - jQuery 函数重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889162/

相关文章:

带有 postfixOps 的 Scala 映射

javascript - Lightbox for jQuery 是将 div 写入 DOM 还是只是显示隐藏的 div?

javascript - 单击以随机创建标记/标签,但从标签默认值开始

javascript - document.on ('event' ) 和 $().event 之间的区别

javascript - 为什么传递函数引用失败而使用函数声明却失败?

c++ - 通过引用和内存使用

c - 在 C 中使用函数作为参数

javascript - 将代码传输到服务器时灯箱错误

jQuery 验证回调函数

javascript - 将 id 从 php while 循环传递给 jquery