【问题标题】:How to make a link to execute a jQuery?如何创建链接以执行 jQuery?
【发布时间】:2013-09-10 00:41:06
【问题描述】:

我有一个页面,其中有几个链接打开不同的fancybox画廊。

通过点击如下链接(在本例中为“galleryone”)“激活”每个画廊:

<a class="manualfancybox" data-gallery="galleryone" name="galleryone" id="galleryone" href="#galleryone">
    <img src="imageToClickToOpenGallery.png" />
</a>

每个画廊(在本例中为“galleryone”)由以下代码创建:

<div id="galleryone">
    <a href="001.jpg" rel="gal_one" class="fancybox" /></a>
    <a href="002.jpg" rel="gal_one" class="fancybox" /></a>
    […]
    <a href="020.jpg" rel="gal_one" class="fancybox" /></a>
</div>

当用户点击“imageToClickToOpenGalleryOne.png”时,它会全屏打开“galleryone”fancybox(再次感谢JFK。没关系,应该是这样。

“Manual Fancybox”使用下面的 jquery:

/* MANUALFANCYBOX by JFK (https://stackoverflow.com/users/1055987/jfk) */
$(document).ready(function () {
    $(".manualfancybox").on("click", function () {
        var gallery = "#" + $(this).data("gallery");
        $(gallery).find(".fancybox").eq(0).click();
        return false;
    });
});

问题:如果用户访问了我的页面并点击了“imageToClickToOpenGalleryOne.png”,我如何创建链接(如http://www.mysite.com/#galleryone)以打开“galleryone”?

Javascript、jquery、php….htaccess??我自己也想不通,更别提解决方案了……

也许由于安全原因,这甚至是不可能的,但我仍然需要一个解决方案来分享我的画廊的链接......

【问题讨论】:

  • 你见过stackoverflow.com/a/9030970/1055987吗?不过可能需要稍作调整
  • 对于这样的链接http://www.mysite.com/#galleryone,您只需将其添加到您的代码中:if(window.location.hash) { $(window.location.hash).trigger('click'); }重要提示:只需确保将其放在 之后 fancybox() 初始化(或在 ready() 方法的末尾)。
  • 是的,JFK,它确实使用此代码 yaaaayyyyy !唯一的问题是,由于某种原因,它不再显示图库背景,因此我无法单击图像外部的任何位置来关闭图像窗口(尽管它确实可以使用“ESC”键)。但是,您对另一个问题(stackoverflow.com/a/9030970/1055987)的回答非常有效。我会试试然后回来。
  • JFK,我无法将您的答案标记为正确,因为它在评论中。
  • 拜托,JFK,看看:http://www.oleschmitt.com.br/novo/imagem/ 并点击任何画廊,看看它是/应该一直是。比尝试访问:http://www.oleschmitt.com.br/novo/imagem/#moda

标签: jquery html hyperlink fancybox fancybox-2


【解决方案1】:

这样的链接

http://www.mysite.com/#galleryone 

您只需将其添加到您当前的代码中:

if(window.location.hash) { 
    $(window.location.hash).trigger('click'); 
}

重要提示:只需确保将其放在之后fancybox() 初始化(或ready() 方法的末尾)。

编辑:OP说:

it's working but it's not showing the gallery background anymore, 
therefore I can't click anywhere outside the image 
to close the image window (it does work with "ESC" key though).

似乎是吊装问题,请尝试按此顺序放置脚本调用:

<script src="../scripts/jquery.fancybox.min.js" type="text/javascript"></script> 
<script src="../scripts/scripts.js" type="text/javascript"></script> 

Fancybox 应该在您放置$(window.location.hash).trigger('click'); 代码的scripts.js 之前 之前调用。现在首先调用 scripts.js

【讨论】:

  • 哦,现在我明白了!现在完美运行。非常感谢。
【解决方案2】:

您想在 url 中使用片段标识符。要做到这一点,请使用window.location.hash 从哈希符号上获取所有内容,例如:“http://example.com#foobar”具有“#foobar”的location.hash。您可以检查[window.onhashchange][1] 事件以查看哈希是否已更改。然后,您可以解析哈希并加载您需要的任何内容。

【讨论】:

  • 有趣的是,唯一似乎理解这个问题的人得到了 -1 ??? (很可能投反对票的人不理解这个问题)
  • 是的,我在想同样的事情 JFK。由于似乎没有人理解我的问题,我花了很长时间将我的网站上传到我的网络服务器,以便人们可以看到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 2011-10-16
  • 2018-09-19
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多