【问题标题】:Jquery, activate a script when a hash is in urlJquery,当哈希在url中时激活脚本
【发布时间】:2012-05-01 15:46:54
【问题描述】:

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

现在,这就是我的问题所在。假设我为图像分配了“示例”的 ID - 当有人进入带有井号标签 #example 的网站或点击带有井号标签的链接时,有什么办法吗? url 中的示例,该事件是否会针对具有相同 ID 的图像触发?我真的被这个难住了

我一直在使用的是这个:

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

});

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

【问题讨论】:

  • 没问题!我刚刚添加了它并解释了一点 - 不是故意这么模糊
  • 你不应该编辑标题来表明你已经解决了它。您应该选择对您最有帮助的答案,然后单击该答案左侧的复选标记。这向系统表明您选择了最佳答案,然后该信息会显示在所有查询中。

标签: jquery events hash triggers


【解决方案1】:

要激活页面中包含井号标签的所有链接,而不需要对任何特定名称进行编码,您可以这样做:

$('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');
    }
});

【讨论】:

  • 谢谢!这不是我想要的,但我修改了它以适应我的情况并且它有效:) 非常感谢!
  • @BrittanySmith:仅供参考,您可以通过单击左侧的大复选标记来表明这是最有帮助的答案。
【解决方案2】:

插件是你的朋友。快速的 Google 显示 Ben Alman 的 jQuery BBQ 库可以为您提供帮助!

(无关:名称很酷的 jQuery 库是您未来项目的绝佳补充!)

【讨论】:

  • 我之前已经看过了,但找不到我需要的东西才能让它工作 - 除非我错过了?
【解决方案3】:
$(function() {

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

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

});

【讨论】:

  • 好吧,问题来了:如果我这样做的话,将会有很多不同的图像,每个图像都需要一个独特的功能 - 我希望有一种方法可以查看哈希码的内容他们的网址是并触发一个具有相同匹配 ID 的图像出现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2010-12-02
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多