JQuery:显示/隐藏Div

时间:2011-10-28 01:25:03

标签: javascript jquery css javascript-events

我的HTML正文末尾有以下Javascript:

<script>

$(document).ready(function() {

    $("a").click(function(event) {

        var div_to_show=event.target.id;

        var real_div=div_to_show.split('-');

        var display_div=real_div[0];

        var elementPos=$("#"+div_to_show).offset();

        var top_pos=elementPos.top-118.5;           

        $('#board-right div').hide(); 

        $("#" + display_div).css('margin-top',top_pos); 

        $("#" + display_div).show(); 

    });

});

</script>

这是它应该操作的HTML:

<div id="board-left">
<div id="board-names">
    <a id="marci-link">Marci Weisler</a><br />
    <a id="nicholas-link">Nicholas Rey</a><br />
</div>
</div><!-- #board-left -->



<div id="board-right">
    <div id="marci" style="display:none;">
    <p>
        Marci Weisler is an accomplished...
    </p>
</div>
<div id="nicholas" style="display:none;">
    <p>
        Nicholas Rey is a French-born...
    </p>
</div>      
</div><!-- board-right -->

因此,代码应从单击的链接中获取div名称,删除“-link”部分,然后显示相应的div。当前点击链接时,当前没有任何事情发生。在我写这篇文章时,我想知道它是否是一个CSS问题?有什么想法吗?

顺便说一句,文档中有一个链接到jQuery 1.3。

2 个答案:

答案 0 :(得分:2)

如果您选中http://jsfiddle.net/pramodpv/YvYBD/

你会发现顶部的pos是负面的..如果你按照你的要求纠正它会起作用

PS:尝试在发布问题时使用jsfiddle,以便人们可以处理您的代码并提供更快的答案...大多数人,您将自己找到答案:D

答案 1 :(得分:2)

尝试你的例子,我发现我必须在超链接中添加一个href ='#'属性,然后在你的点击处理程序中添加一个event.preventDefault()作为第一行。

与Pramod SyneITY相同,顶部位置需要评估为可见文本的正值。