Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript双击元素_Javascript_Jquery - Fatal编程技术网

Javascript双击元素

Javascript双击元素,javascript,jquery,Javascript,Jquery,嘿,伙计们。。快速问题: 我编写了一个简单的JS,当点击一个图像链接时,它会打开lightBox进行图像查看。基本上,使用jQuery(是的,我很懒),我检测到锚标记的点击,使用正则表达式确保HREF属性指向图像文件,如果是,则在lightBox中打开图像。这一切都很好,除了一件事:锚需要点击两下才能打开lightBox。为什么呢 以下是我写的剧本: $(document).ready(function(){ var href; var imageExtensions =

嘿,伙计们。。快速问题:

我编写了一个简单的JS,当点击一个图像链接时,它会打开lightBox进行图像查看。基本上,使用jQuery(是的,我很懒),我检测到锚标记的点击,使用正则表达式确保HREF属性指向图像文件,如果是,则在lightBox中打开图像。这一切都很好,除了一件事:锚需要点击两下才能打开lightBox。为什么呢

以下是我写的剧本:

    $(document).ready(function(){
    var href;
    var imageExtensions = /(.)+(.jpg)|(.png)|(.gif)|(.bmp)/;
    //On click of any link
    $("a").live("click",function(event){
        href = $(this).attr("href");
        //If the target URL is an image, use lightbox to open it
            if(imageExtensions.test(href)){
                event.preventDefault();
                $(this).attr("class","lightboxIMG");
                //Prevent the link from opening, and open lightbox
                $(".lightboxIMG").lightBox();
                $(this).attr("class","");
            }
    });
//END   
});
我不知道是什么原因导致用户必须点击两次才能激活lightBox。如果您需要一个示例来了解我所指的内容,我目前正在我的新网站的beta版中使用该脚本:

点击“查看全尺寸”来了解我的意思。我将非常感谢任何帮助-非常感谢

我认为现在发生的是
lightbox()
调用只将锚点设置为lightbox,它实际上没有显示lightbox。因此,第一次点击是对lightbox说“让这成为一个lightbox链接”,第二次点击被lightbox捕获,并实际显示lightbox

编辑它的实时方面重要吗?或者,您是否计划在加载文档后添加更多需要捕获的链接?如果live不重要,那么标准的
lightBox()
方法应该足够好,可以捕捉点击。如果是,我会考虑编写一个<代码> HooCangRoSo.()/Cux>样式方法,您可以在AjaScript之后调用它,简单地调用<代码> ListBox()/<代码>。比如:

$(document).ready(function() {
    hookAchors();
});

function hookAnchors() {
    var imageExtensions = /(.)+(.jpg)|(.png)|(.gif)|(.bmp)/;
    $('a')
        .filter(function() {
            return imageExtensions.test($(this).attr("href"))
        })
        .lightBox();
}

这样,您就可以在更改DOM的代码中调用hookAnchors(例如,
$.get

看那个-工作得很有魅力!我不知道lightbox自己就被点击了。如果我不是男人,我会说我爱你!是的。。。以前,我让整个图像库都使用AJAX,但由于书签等问题,我对其进行了更改-这就是为什么我仍然在其中使用live()函数的原因。非常感谢-太棒了!