重定向到页面的锚点上的动作点击事件

时间:2014-06-06 13:37:18

标签: javascript jquery html

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

在标题中,我有一个“联系我”按钮,触发该LI上的点击事件,以便显示“联系我们”文本,只有在包含联系人字段的页面上发生这种情况时才能正常工作,但如果我在另一个页面我不知道如何定位该页面并对其进行点击操作。

我认为它类似于检测URL中的链接,如果之后有一个哈希标记,则在页面中找到该标记,如果您发现它在其上创建了Click事件。

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

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/

所以这里有任何帮助吗?

2 个答案:

答案 0 :(得分:0)

你是说这个意思吗? 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;
}

答案 1 :(得分:0)

在页面上,联系人按钮是我的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>

灵感来自这篇文章: Getting URL hash location, and using it in jQuery