重定向到一个操作点击事件的页面的锚

Redirect to a Anchor of a page an action click event on it

本文关键字:事件 操作 一个 重定向      更新时间:2023-09-26

所以我有一个带有几个LI的UL标记,每个LI都有自己的UL。在桌面设备上,第二个UL通过悬停第一级LI来显示Block。但是在移动设备上,我想让它点击。

在header中,我有一个Contact Us按钮,它触发了该LI上的单击事件,因此Contact Us文本出现,只有当这发生在带有联系人字段的页面上时,这才有效,但如果我在另一个页面上,我不知道如何定位该页面并对其进行单击操作。

我想这有点像,在URL中检测链接,如果有一个散列标签,把这个标签在页面中找到它,如果你找到它,在它上面做一个点击事件。

但是我真的不知道如何为它写代码。

HTML结构看起来像这样:

<div id="ClickForContact">Contact Us</div>

<ul>
  <li>
     <a>Something else</a>
  </li>
  <li>
    <a id="contact">Contact</a>
    <ul class="subMenu" >
        <li>
            <p>Some text here and there.</p>
        </li>
    </ul>
   </li>
 </ul>
http://jsfiddle.net/QkB9T/1/

有什么帮助吗?

你的意思是这样吗?http://jsfiddle.net/QkB9T/2/

HTML

<a href="#contact">Contact Us</a>
<ul>
    <li>
        <a>Something else</a>
    </li>
    <li>
        <a id="contact">Contact</a>
        <ul class="subMenu" >
            <li>
                <p>Some text here and there.</p>
            </li>
        </ul>
    </li>
</ul>
CSS

    .subMenu{
    display:none;
}
ul li:hover .subMenu,
ul li a:target + .subMenu{
    display:block;
}

在页面上的联系人按钮是我做的这个javascript:

<script type="text/javascript">
$(document).ready(function(){
    var url = window.location.hash;
    var hash = url.substring(url.indexOf('#')); // '#foo'
    if(hash == '#contactUs'){
        setTimeout(function(){
            $('#contactUs').click();
            window.clearTimeout();
        },500);
    }
});
</script>   

在页眉中我放了:

<a href="<? echo base_url . '#contactUs'; ?>">Contact</a>

灵感来自这篇文章:获取URL散列位置,并在jQuery中使用