【问题标题】:Trigger click on URL with hashtag触发点击带有井号标签的 URL
【发布时间】:2012-01-16 22:31:57
【问题描述】:

你可以触发点击带有井号标签的 URL 吗?

例如:

我有这个链接:<a class="contact">Contact Me</a>

当我访问www.example.com/#contact 开火时:$('a.contact').trigger('click');

这可以通过任何 hacky 方式实现吗?

【问题讨论】:

    标签: javascript jquery url hashtag


    【解决方案1】:
    var hash = window.location.hash.slice(1); // get the hash, and strip out the "#"
    
    if( hash /* && hash === 'contact' */ )  // if there was a hash
        $('a.' + hash ).trigger('click');   //    concatenate it into the selector
    

    【讨论】:

    • 我认为这是我想要达到的目标。你介意更新我的小提琴吗? jsfiddle.net/ewCQm它的基本结构
    • @jQuerybeast:您是要触发 jQuery .click() 处理程序,还是打算让用户点击链接?
    • 触发点击先生,因为它不是一个实际的 URL。谢谢
    • @jQuerybeast:我updated the fiddle,但我必须通过在代码中手动添加它来模拟哈希。如果用户在 url 中实际上有 #contact,则应该工作相同。
    • 也许这是一个更好的例子:fiddle.jshell.net/A2ex9 当链接被点击时,背景变成红色。如果你访问带有#contact的url,背景会变成红色。
    【解决方案2】:

    您应该能够使用jQuery BBQ plugin 捕获hashchange 事件(参见本页最后一个示例)。这些方面的东西应该可以工作:

    $(window).bind("hashchange", function(e) {
        if ($.param.fragment() === 'contact') {
            $('a.contact').trigger('click');
        }
    });
    
    $(window).trigger("hashchange");
    

    这不仅应该在您第一次加载页面时起作用,而且在其他内容更改片段时也应该起作用。

    【讨论】:

    • 谢谢。我不打算使用插件,因为它们会使网络应用程序膨胀
    • 我有一个不同的要求,你的代码 sn-p 帮助了我~!
    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 2017-04-22
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    相关资源
    最近更新 更多