Jquery,当哈希在url中时激活脚本

时间:2012-04-20 03:16:28

标签: jquery events hash triggers

因此,当您单击触发显示它们的事件的相应链接时,我有一些图像位于设置为隐藏的页面上方,显示继承。

现在,这就是我的问题所在。说我给图像分配了一个“示例”的ID - 当有人进入带有哈希标记#example的网站或点击带有哈希标记的链接时,有什么方法#在url中的示例,该事件将触发具有相同ID的图像?我真的很难过这个

我一直在使用的是:

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

});

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

3 个答案:

答案 0 :(得分:4)

$(function() {

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

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

});

答案 1 :(得分: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');
    }
});

答案 2 :(得分:0)

插件是你的朋友。一个快速的谷歌显示,本·阿尔曼的jQuery BBQ图书馆可以带给你一个乐于助人的手!

(不相关:带有很酷名字的jQuery库对你未来的项目来说是一个很棒的补充!)