如何使用 jQuery 更改选项卡式内容?
我正在使用 jQuery 在三个单独的视图中显示内容。但是,我只能显示第一个(默认)视图。注意:这没有使用 jQuery UI。
这是页面的链接(仍在开发中)。
这是 html:
<div id="tabbed_area">
<ul class="tabs">
<li><a id="services" class="tab active" href="#">Services</a></li>
<li><a id="supplies" class="tab" href="#">Supplies</a></li>
<li><a id="diy" class="tab" href="#">DIY</a></li>
</ul>
<br class="clearer" />
<div id="services-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
<div id="supplies-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
<div id="diy-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
</div>
这是 css:
#mainContent #tabbed_area { padding: 0 20px; position: relative; z-index: 50; }
ul.tabs { margin: 0px; padding: 0px; }
ul.tabs li { list-style: none; float: left; display: inline; }
ul.tabs li a#services {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_services.png) no-repeat center top; }
ul.tabs li a#supplies {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_supplies.png) no-repeat center bottom; }
ul.tabs li a#diy {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_diy.png) no-repeat center bottom; }
ul.tabs li a#services:hover,
ul.tabs li a#supplies:hover,
ul.tabs li a#diy:hover { background-position: center center; }
#supplies-content, #diy-content { display: none; }
最后是 jQuery:
<script type="text/javascript">
$(document).ready(function() {
$("a.tab").click(function(){
$(".active").removeClass("active");
$(this).addClass("active");
$(.content).slideUp();
var content_show = $(this).attr("title");
$("#"+content_show).slideDown();
});
});
</script>
I am using jQuery to display content in three separate views. However, I can only get the first (default) view to show. Note: this is not using jQuery UI.
Here is a link to the page (still very much in dev).
Here is the html:
<div id="tabbed_area">
<ul class="tabs">
<li><a id="services" class="tab active" href="#">Services</a></li>
<li><a id="supplies" class="tab" href="#">Supplies</a></li>
<li><a id="diy" class="tab" href="#">DIY</a></li>
</ul>
<br class="clearer" />
<div id="services-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
<div id="supplies-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
<div id="diy-content" class="content">
<p class="intro">Welcome to <a href="#">Moving Simplified</a>. Features and benefits go here on the home page to drive.</p>
<h3>This is the main headline</h3>
<h4>Headline Goes Here</h4>
<p>Welcome to Moving Simplified. Features and benefits go here on the ome page to drive home the point that you are affordable, professional, knowledgeable, amd make the move real.</p>
</div>
</div>
Here is the css:
#mainContent #tabbed_area { padding: 0 20px; position: relative; z-index: 50; }
ul.tabs { margin: 0px; padding: 0px; }
ul.tabs li { list-style: none; float: left; display: inline; }
ul.tabs li a#services {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_services.png) no-repeat center top; }
ul.tabs li a#supplies {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_supplies.png) no-repeat center bottom; }
ul.tabs li a#diy {
width: 113px;
height: 36px;
display: block;
text-indent: -9999px;
border: none;
background: url(../_images/btn_diy.png) no-repeat center bottom; }
ul.tabs li a#services:hover,
ul.tabs li a#supplies:hover,
ul.tabs li a#diy:hover { background-position: center center; }
#supplies-content, #diy-content { display: none; }
And finally here is the jQuery:
<script type="text/javascript">
$(document).ready(function() {
$("a.tab").click(function(){
$(".active").removeClass("active");
$(this).addClass("active");
$(.content).slideUp();
var content_show = $(this).attr("title");
$("#"+content_show).slideDown();
});
});
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这一行:
应该是:
而这一行:
应该是:
...因为你没有标题属性,但 ID 似乎确实给了你想要的。
由于内容区域的 ID 以“-content”结尾,因此您需要将其附加到
content_show
中的 ID。另外,我猜测
元素的默认行为是在您单击时刷新页面。
您应该使用
event.preventDefault()
单击时阻止的默认行为
This line:
should be:
And this:
should be:
...since your doesn't have a title attribute, but the ID does seem to give you want you want.
And since the content area has an ID ending with "-content", you need to append that to the ID from
content_show
.Also, I'm guessing that the default behavior of the
<a>
element is refreshing the page when you click.You should prevent the default behavior of the
<a>
when you click usingevent.preventDefault()