使用Javascript/Jquery创建可重用的选项卡功能
Creating a reusable tab functionality using Javascript/Jquery
我已经为制表功能创建了一个简单的jquery代码片段。
但是我想让它可重复使用,所以当我复制HTML标记时,它会创建一个标签,我只会改变标签的标题和内容。
我不想创建一个jquery插件,而是我想用jquery和javascript来实现这一点。
有人能解释一下吗??
jsbin - http://jsbin.com/niqiline/1/edit
Javascript
==========
var tabs = (function() {
function init() {
$(".tab-content").not(":first").hide();
$("ul.tab-headings li:first").addClass("tab-headings--active").show();
$("ul.tab-headings li").on('click', function() {
$(this).parent().find('li.tab-headings--active').removeClass("tab-headings--active");
$(this).addClass("tab-headings--active");
//tabContent.hide();
$($('a', this).attr("href")).fadeIn('slow');
return false;
});
}
init();
})();
HTML
==========
<!-- First Tab -->
<div class="tab">
<ul class="tab-headings">
<li><a href="#tab1">Tab1</a>
</li>
<li><a href="#tab2">Tab2</a>
</li>
</ul>
<div class="tab-container">
<div id="tab1" class="tab-content">
<p>ABC</p>
</div>
<div id="tab2" class="tab-content">
<p>XYZ</p>
</div>
</div>
</div>
<!-- Second Tab -->
<div class="tab">
<ul class="tab-headings">
<li><a href="#tab3">Tab1</a>
</li>
<li><a href="#tab4">Tab2</a>
</li>
</ul>
<div class="tab-container">
<div id="tab3" class="tab-content">
<p>ABC</p>
</div>
<div id="tab4" class="tab-content">
<p>XYZ</p>
</div>
</div>
</div>
您可以使用PHP include来加载所需的HTML。使用那个和URL中的查询字符串。我认为,如果服务器上没有为您选择正确的文件来加载,您就无法做到这一点。您可以为正确的选项卡数量调整PHP文件,或者为不同数量的选项卡创建多个选项卡,或者让PHP文件为不同数量的选项卡输出不同的HTML。这里给出的代码只适用于两个制表符。
URL: example.com/tabs.php?tab1=page5&tab2=page27
在你的HTML文件的顶部添加这个
<?php
$tab1 = $_GET['tab1'];
$tab2 = $_GET['tab2'];
?>
然后用
替换第一个标签头<?php
switch ($tab1) {
case "page5":
echo "The title of page 5";
break;
}
?>
用"tab2"代替"tab1"
然后像这样替换每个选项卡的内容
<?php include $tab1 . ".php"; ?>
将HTML文件保存为PHP文件。将文件的内容放入一个PHP文件中。查询字符串中的内容就是加载的文件。在switch语句中保存选项卡头。你应该有一个系统来检查你想要加载的页面是否被设置(可能在上面的switch语句中),如果页面不在批准的页面列表中,那么应该给出一个错误。
必须在启用PHP的服务器上运行,PHP只能在服务器上工作。这个URL不是很好读,你可以设置服务器将可读的URL,如example.com/page5-page27
转换为完整的URL,但这取决于你使用的服务器。
这就是我所做的,它现在工作得很好。http://jsbin.com/niqiline/1/edit
var tabs = (function(tab) {
function init() {
var tabContent = $(".tab-content", tab),
tabHeadings = $("ul.tab-headings", tab);
tabContent.not(":first").hide();
tabHeadings.find("li:first").addClass("tab-headings--active").show();
$("li", tabHeadings).on('click', function() {
tabHeadings.find('li.tab-headings--active').removeClass("tab-headings--active");
$(this).addClass("tab-headings--active");
tabContent.hide();
$($('a', this).attr("href")).fadeIn('slow');
return false;
});
}
init();
});
tabs($("#tab"));
tabs($("#tab1"));
- 来自“选择”选项的 HTML 画布功能
- 辅助功能键盘专用选项卡到z索引“;返回顶部”;
- 选项卡分组和选项卡着色:如何将此功能应用于从我的网页打开的选项卡,而不考虑浏览器
- 通过自定义JS功能激活Sencha Touch选项卡
- 更改选择选项下拉列表与onclick功能按钮
- 是的,没有带有链接的JavaScript删除功能的选项
- 如何将“功能选项卡”添加到谷歌的块
- 使用带有“慢速”选项的切换时功能中断
- 如何在输入下从数据列表中选择一个选项后立即触发功能
- 选项卡按钮功能
- 如何在UI选择菜单中为每个选项指定选择功能
- 如果我们在表格标题中有可编辑的文本,选项卡功能将无法正常工作
- DevBridge JQuery 自动完成功能,可从建议的选项中进行多项选择
- 如何将道具功能更改为使用选项
- 如何防止 JQuery 中的默认选项卡切换功能
- 解决选项卡功能中的错误
- 在选项卡的点击功能上初始化猫头鹰轮播
- jQuery 用于选项卡的功能不起作用
- 更改所选选项功能的输入
- 创建删除后撤销选项/功能