我的布局大致如下:
<div id="foo">
<!-- a bunch of content -->
</div>
<div id="thumbnails">
<div class="thumb-content1"></div>
<div class="thumb-content2"></div>
<div class="thumb-content3"></div>
</div>
<div id="content-1">
<!-- some text and pictures, including large-pic1 -->
</div>
<div id="content-2">
<!-- some text and pictures, including large-pic2 -->
</div>
<div id="content-3">
<!-- some text and pictures, including large-pic3 -->
</div>
etc ....
Run Code Online (Sandbox Code Playgroud)
在页面加载时,我想显示'foo'和'缩略图'并隐藏三个内容div.
当用户点击每个缩略图时,我想隐藏foo,并用匹配的'content-x'替换它.
我可以全面了解jQuery show,隐藏和替换(尽管如果你想在你的例子中包含它,还有奖励积分!).但是,如何从缩略图类中提取和构造适当的内容ID,然后将其传递给show hide代码?
根据您的标记,您可以执行以下操作:
$("[id^=content]").hide();
$("#thumbnails > div").click(function() {
var id = $(this).attr('class').replace('thumb-content','');
$("#foo").html($("#content-"+id).html());
})????????????????;?
Run Code Online (Sandbox Code Playgroud)
这使用^=starts-with选择器隐藏初始div,点击后,用于.html()复制内容,如您所愿.
如果你有很多的这些,它是更好地使用.delegate(),其附加一个单一的事件处理程序,而不是n事件处理程序的每一个可点击的<div>.它看起来像这样:
$("[id^=content]").hide();
$("#thumbnails").delegate("div", "click", function() {
var id = $(this).attr('class').replace('thumb-content','');
$("#foo").html($("#content-"+id).html());
});?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2378 次 |
| 最近记录: |