1

这不是一个问题,只是我想给你的一些建议。经过数小时的谷歌搜索和测试,我没有找到适用于我的灯箱的解决方案。我不知道为什么,但我无法将链接应用到标题中,而不是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。

这是解决标题问题中的链接的一种非常复杂且不寻常的方法,但它是它在我的脚本中工作的唯一方法。

我希望我帮助了某人!:)

4

0 回答 0