0

我正在创建会员的个人资料页面。成员的名字是他们的生物 id 的链接。期望的结果是,当每个人的姓名被点击时,他们的简历详细信息会出现在页面上的特定 css 样式框中。页面加载时框的背景和边框可见,但没有内容。单击另一个名称时,以前的简历将返回隐藏,而当前的简历将更改为显示。这个新手可能没有得到一个简单的答案。

    <script type="text/javascript">
$(document).ready(function() {
         $(document).ready(function() {
            $("#bioLinks div a").click(function(){  
                $("#bios .show").removeClass("show").addClass("hide");
                var bio = $("#bios ." + $(this).attr("id"));
                bio.removeClass("hide");
                bio.addClass("show");
                })
        });
</script>

链接和框的样式部分的 css:

#bios {background:#FFFFCC; border-style:solid; border-color:#ffd119; padding:15px; width:600px;text-align:left;position:absolute; top:200px;left:20px;}
.show {display:block; width:600px;}
.hide {display:none;}
.biopic {float:left; margin-right:15px; width:200px; height:200px; border-style:solid; border-color:#000099;clear:left;}
.biostext {display:inline; margin-left:15px; font-family:Georgia, serif; clear:right;}
#bioLinks {float:left; display:block; font-family:Georgia, serif;  margin-left:25px; margin-top:15px;clear:right;}
a {font-family:Georgia,serif; color:#0000ff; text-decoration:none;}

链接本身,虽然实际上会有几十个:

<div id="bioLinks">
  <div><a href id="bio1">Joe Bloggs</a></div>
  <div><a href id="bio2">Monica Faux</a></div>
  <div><a href id="bio3">John Doe</a></div>
</div>

还有bios本身,但出于隐私考虑,照片已被删除:

<div id="bios">
        <div class="bio1 hide">
            <!--div class="biopic"><img src="http://www. -- snip--.jpg" width="200" height="200" alt="Joe Bloggs"-->
            <!--/div-->
            <div class="biostext">Joe Bloggs is just like everybody else.
            </div>
        </div>
        <div class="bio2 hide">
            <!--div class="biopic"><img src="http://www. -- snip--.jpg" width="200" height="200" alt="Monica Faux"-->
            <!--/div-->
            <div class="biostext">Monica Faux is a belle with a shady past.</div>
         </div>
         <div class="bio3 hide">
            <!--div class="biopic"><img src="http://www. -- snip--.jpg" width="200" height="200" alt="John Doe"-->
            <!--/div-->
            <div class="biostext">John Doe is an unknown in the organisation.
            </div>
         </div>
</div>

当我在 Chrome 和 IE 中测试我的代码时,加载时会显示空框,但单击链接不会产生任何结果。

4

2 回答 2

0

工作小提琴

我相信你的问题是语法上的。您不应该进行双重绑定$(document).ready(),并且看起来无论如何都比所需的右括号数量少一个。

将您的 javascript 更改为

$(document).ready(function () {
    $("#bioLinks div a").click(function () {
        $("#bios .show").removeClass("show").addClass("hide");
        var bio = $("#bios ." + $(this).attr("id"));
        bio.removeClass("hide");
        bio.addClass("show");
    })
});

看看是否能解决问题

另一方面,您使用了错误的方法来注释掉 HTML。HTML 的结束注释-->不是--!>

于 2013-09-07T00:57:36.037 回答
0

你可以试试这个

$("#bioLinks div a").click(function () {
    $("#bios > div").removeClass("hide").hide();
    var bio = $("#bios ." + $(this).attr("id"));
    bio.show();
});

演示。

于 2013-09-07T01:12:23.663 回答