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