0

我正在使用在这里找到的 Java Script Show/Hide DIV Toggler 。它有效,但副作用是每次单击切换都会将我带到页面顶部。签入 FF 和 Chrome,两种浏览器的交易相同。我无法确定它是否正在重新启动页面,但我知道它没有重新加载它。

这是脚本:

<script type="text/javascript">
<!--
    function toggle_visibility(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }
//-->
</script>

这是切换(注意 href="#" - 是问题吗?):

<a href="#" onclick="toggle_visibility('gallery_info');">[Click to see more details]</a>

这是显示/隐藏的 div(如您所见,它开始隐藏):

<div id="gallery_info" style="display: none;">

有任何想法吗?

非常感谢!亚历克斯

4

3 回答 3

1

与功能无关,是a跳转到页面顶部的标签,您可以使用event.preventDefault()return false在功能内防止a标签的默认动作。

于 2012-07-02T04:27:47.693 回答
1

使用 javascript: 作为 href 而不是 #

<a href="javascript:" onclick="toggle_visibility('gallery_info');">[Click to see more details]</a>
于 2012-07-02T04:57:12.100 回答
0

添加e.preventDefault()到函数以停止单击链接的默认行为。指定href='#'表示指向当前页面顶部的链接,这就是您当前看到该行为的原因。如果您使用的是 jquery,您也可以return false从函数中代替。

请注意,e上面的变量是作为第一个参数传递给 onclick 函数的事件对象

于 2012-07-02T04:27:48.363 回答