这不是一个问题,只是我想给你的一些建议。经过数小时的谷歌搜索和测试,我没有找到适用于我的灯箱的解决方案。我不知道为什么,但我无法将链接应用到标题中,而不是htmlentities()
等等。
所以我想出了自己的解决方案,这只是一种解决方法。我对自己不是很满意,但这是唯一对我有用的方法。所以,如果你和我有同样的烦恼,只需添加这行代码:
搜索这行代码lightbox.js
(在我的文件中是第 277 行):
$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast');
并将其替换为:
$lightbox.find('.lb-caption').html('<span onclick="window.location.href=\'http://yourdomain.com\'">'+this.album[this.currentImageIndex].title+"</span>").fadeIn('fast');
我做了什么?
由于.lb-caption
添加显示标题属性,我只是将原始输出包装在一个元素中并将点击事件绑定到某个位置。
问题在于:因为我包裹了整个标题属性,所以整个标题属性变成了一个链接。
获取光标:指针;在 css 和标准链接布局中的效果,只需将标题设为链接即可。这样就不必htmlentities()
解码链接。
例子:
<a href="img/image1.png" rel="lightbox[roadtrip]" title="<a class"lightboxlink">This link opens a new page</a>
另一个问题是:现在链接是静态的。(因为我们没有使用链接的href)。
解决方案:
要将一个 $_GET
属性添加到链接,我们只需要修复几行。您所做的是,在您的图像调用(部分)中添加属性“rev”,意味着:
而不是<a href="img/image1.png" rel="lightbox[roadtrip]" title="<a class"lightboxlink">This link opens a new page</a>
,
您现在使用(添加“rev”属性“):
<a href="img/image1.png" rel="lightbox[roadtrip]" rev="test" title="<a class"lightboxlink">This link opens a new page</a>
现在到 Javascript 部分...
搜索:
if ($link.attr('rel') === 'lightbox') {
this.album.push({
这部分,并替换:
link: $link.attr('href'),
title: $link.attr('title'),
和
link: $link.attr('href'),
title: $link.attr('title'),
rev: $link.attr('rev')
如果你往下走几行,你会看到相同的部分带有链接:$….,标题:$….,将那部分替换为:
link: $(a).attr('href'),
title: $(a).attr('title'),
rev: $(a).attr('rev')
现在我们只需要修改我们的包装器:(现在回到第 279 行,在 $_GET 部分之前是第 277 行)
$lightbox.find('.lb-caption').html('<span onclick="window.location.href=\'http://yourdomain.comindex.php?page=contact&t='+this.album[this.currentImageIndex].rev+'\'">'+this.album[this.currentImageIndex].title+"</span>").fadeIn('fast');
我们现在添加'+this.album[this.currentImageIndex].rev+'
而不是静态部分。
您可以重复此方法以添加无限$_GET
参数,只需在您的图像调用中添加一个新属性,然后像我们在我的解释中所做的那样更改 javascript。
这是解决标题问题中的链接的一种非常复杂且不寻常的方法,但它是它在我的脚本中工作的唯一方法。
我希望我帮助了某人!:)