Javascript 动态链接和jQuery Lightbox问题:在Lightbox中加载图像…完全被难住了!
我有一个为照片库动态创建链接的功能。当单击和缩略图时,该函数还会生成一个较大的图像作为div的背景图像。我想做的是有第三个事件,如果用户单击div中放大的图像,jQuery Fancybox将加载div中显示的图像的更大版本。问题是,我正在使用的锚标记的链接是动态创建的,我知道Fancybox会在DOM就绪时解析HTML……不幸的是,我的函数通过为全尺寸图像添加锚定标记来更改DOM。我需要的帮助是使用Fancybox的选项为插件指定href属性。我很抱歉说的太多了…这是密码 jQuery:Javascript 动态链接和jQuery Lightbox问题:在Lightbox中加载图像…完全被难住了!,javascript,jquery,lightbox,Javascript,Jquery,Lightbox,我有一个为照片库动态创建链接的功能。当单击和缩略图时,该函数还会生成一个较大的图像作为div的背景图像。我想做的是有第三个事件,如果用户单击div中放大的图像,jQuery Fancybox将加载div中显示的图像的更大版本。问题是,我正在使用的锚标记的链接是动态创建的,我知道Fancybox会在DOM就绪时解析HTML……不幸的是,我的函数通过为全尺寸图像添加锚定标记来更改DOM。我需要的帮助是使用Fancybox的选项为插件指定href属性。我很抱歉说的太多了…这是密码 jQuery: fu
function gallery(picid, picnum){
var ext = 'jpg';
var fullSize = 'imgs/'+picid+'_full.'+ext;
$('#photolarge').css("background", 'url(imgs/'+picid+'_large.'+ext+') no-repeat');
$('#photolarge a').attr(
{ href: fullSize
//rel: 'lightbox',
}
);
$("#lightboxlink").click(function(){
$('#lightboxlink').fancybox({
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto',
'href' : fullSize
});
});
return false;
}
HTML代码段
<div id="photolarge">
<a id="lightboxlink" href="#"></a>
</div>
<div id="phototable">
<ul id="photorow1">
<li><a onclick="gallery('bigsun',1)"><img id="sun" src="imgs/bigsun.jpg" /></a></li>
</ul>
</div>
任何帮助都将不胜感激 您可以使用事件处理程序,并立即打开lightbox,如下所示:
$("#lightboxlink").live('click', function(e){
$(this).filter(':not(.fb)').fancybox({
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto',
'href' : fullSize
}).addClass('fb');
$(this).triggerHandler('click');
e.preventDefault(); //prevent opening in new window
});
它在链接上运行
.fancybox()
,但前提是我们还没有运行它,我们正在通过添加.fb
类来跟踪它。无论是新绑定还是新绑定,我们都需要触发单击
处理程序,这是fancybox
要打开的内容。我应该提到我尝试了.live()。谢谢,但我仍然遇到这样一个问题:创建的链接在新窗口中加载图像。@Christian-oh-woops,您需要一个防止默认值,一个moment@Christian-我对此进行了更新,不过fancybox应该已经在处理它了。@Nick Hmmm…图像仍在新窗口中加载。您的代码很有意义,这甚至更奇怪(尽管我对javascript仍然很业余)。我的文件的另一部分肯定有错误。@Christian-你的控制台有错误吗?JavaScript错误意味着默认行为将接管…这就是您看到的它听起来的样子。
$("#lightboxlink").live('click', function(e){
$(this).filter(':not(.fb)').fancybox({
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto',
'href' : fullSize
}).addClass('fb');
$(this).triggerHandler('click');
e.preventDefault(); //prevent opening in new window
});