2012-04-20 45 views
1

所以我有一些图像完全位于设置为隐藏的页面上,当你点击合适的链接触发显示它们的事件时,显示继承。jquery,当一个哈希值在url中时激活一个脚本

现在,这里是我的问题来了。说我分配一个图像的ID为“示例” - 有什么办法,当有人用哈希标签#example进入网站或点击与哈希标签的链接#example在url中,该事件会触发一个具有相同ID的图像?我真的难倒就这一个

使用什么我一直是这样的:

$("#activate1").click(function() { 
$("#flyer1").css("display", "inherit"); 

});

哪些工作正常,但现在我必须每周添加传单,这意味着我需要改变,除非我想为每个独特的案例编写上述代码。但最重要的是,我现在还必须通过链接将它们发送给用户,这样脚本现在必须在点击链接时触发 - 我认为解决此问题的最佳方法可能是实施散列标记触发器

+0

你可以张贴一些代码? – elclanrs 2012-04-20 03:17:38

+0

当然可以!我刚才添加了它,并解释了更多 - 并不意味着如此模糊 – 2012-04-20 03:27:45

+0

欢迎来到SO布列塔尼! – 2012-04-20 03:44:06

回答

2

要激活的是在他们的哈希标签不编码任何特定名称的页面中的所有链接,您可以此操作:

$('a[href*="#"]').on('click', function(e) { 
    var match = this.href.match(/#[^#]+$/); 
    if (match) { 
     // trigger a click on the object that has an id 
     // matching the hash value in the link 
     $(match[0]).trigger('click'); 
     return(false); // no default processing for the link 
    } 
}); 

来处理初始链路上的散列标签,你可以运行此代码:

$(document).ready(function() { 
    if (window.location.hash && window.location.hash != "#") { 
     $(window.location.hash).trigger('click'); 
    } 
}); 
+0

谢谢!这不是我正在寻找的,但我修改它适合我的情况,它的工作原理:)非常感谢你! – 2012-04-20 05:38:14

+0

@BrittanySmith:仅供参考,您可以通过单击左侧的大复选标记来表明这是最有用的答案。 – 2012-04-21 17:49:44

4
$(function() { 

    $('#example').on('click', function() { 
     alert('was triggered'); 
    }); 

    $(window.location.hash).trigger('click'); 

}); 
+0

嗯,这里的问题是:如果我去那里,会出现很多不同的图像,每个图像都需要一个独特的功能 - 我希望有一种方法可以查看他们URL中的哈希代码是什么,并触发图像看起来有相同的匹配ID – 2012-04-20 03:38:54

0

插件是你的朋友。谷歌快速显示,本阿尔曼的jQuery BBQ图书馆可以引导你一个有益的手!

(无关:jQuery的很酷的名字库是一个真棒除了你未来的项目!)

+0

我之前在看那个,但是我找不到我需要这个工作的东西 - 除非我错过了它? – 2012-04-20 03:46:48