基础 6:如何使用 jquery 添加选项卡
Foundation 6: How to add tabs using jquery
我正在尝试使用 jquery 在基础中添加一个选项卡。看我的演示代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tab Test</title>
<link href="foundation-6/css/foundation.css" type="text/css" rel="stylesheet">
<script src="jquery-2.2.0.js"></script>
<script src="foundation-6/js/foundation.js"></script>
</head>
<body>
<div class="row"><div class="large-12 columns"><button type="button" id="button1">Click Me!</button></div></div>
<div class="row collapse">
<div class="medium-3 columns">
<ul class="tabs vertical" id="example-vert-tabs" data-tabs>
<li class="tabs-title is-active"><a href="#panel1v" aria-selected="true">Tab 1</a></li>
<li class="tabs-title"><a href="#panel2v">Tab 2</a></li>
<li class="tabs-title"><a href="#panel3v">Tab 3</a></li>
<li class="tabs-title"><a href="#panel4v">Tab 4</a></li>
<li class="tabs-title"><a href="#panel5v">Tab 5</a></li>
<li class="tabs-title"><a href="#panel6v">Tab 6</a></li>
</ul>
</div>
<div class="medium-9 columns">
<div class="tabs-content vertical" data-tabs-content="example-vert-tabs" id="tab_content">
<div class="tabs-panel is-active" id="panel1v">
<p>Test1</p>
</div>
<div class="tabs-panel" id="panel2v">
<p>Test2</p>
</div>
<div class="tabs-panel" id="panel3v">
<p>Test3</p>
</div>
<div class="tabs-panel" id="panel4v">
<p>Test4</p>
</div>
<div class="tabs-panel" id="panel5v">
<p>Test5</p>
</div>
<div class="tabs-panel" id="panel6v">
<p>Test6</p>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$(document).foundation();
$("#button1").click(function() {
$("#example-vert-tabs").append('<li class="tabs-title"><a href="#panel7v">Tab 7</a></li>');
$("#tab_content").append('<div class="tabs-panel" id="panel7v"><p>Test7</p></div>');
$(".tabs").foundation();
});
});
</script>
</body>
</html>
但是当我单击该按钮时,我收到以下警告:"Tried to initialize tabs on an element that already has a Foundation plugin." 并且我无法单击新选项卡。
单击时出现此错误:
7123TypeError: undefined is not an object (evaluating '$tabLink[0].hash')
_handleTabChangefoundation.js:7122
(anonymous function)foundation.js:7059
dispatchjquery-2.2.0.js:4731
handlejquery-2.2.0.js:4543
怎么了?
代码中的基本问题是如何初始化选项卡实例。
在基础 6 中,为了创建一个新的选项卡实例 (link),您应该在您的 js 代码中添加如下内容:
var elem = new Foundation.Tabs($('#example-vert-tabs'));
然后每次进行更改和添加或删除选项卡时,您都可以这样调用:
elem = new Foundation.Tabs($('#example-vert-tabs'));
我已经用你的代码创建了一个 codepen 示例,这样你就可以准确地看到发生了什么 (http://codepen.io/MKallivokas/pen/xVgrYM):
$(document).ready(function() {
var elem = new Foundation.Tabs($('#example-vert-tabs'));
$("#button1").click(function() {
$("#example-vert-tabs").append(
'<li class="tabs-title"><a href="#panel7v">Tab 7</a></li>'
);
$("#tab_content").append(
'<div class="tabs-panel" id="panel7v"><p>Test7</p></div>'
);
elem = new Foundation.Tabs($('#example-vert-tabs'));
});
});
我正在尝试使用 jquery 在基础中添加一个选项卡。看我的演示代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tab Test</title>
<link href="foundation-6/css/foundation.css" type="text/css" rel="stylesheet">
<script src="jquery-2.2.0.js"></script>
<script src="foundation-6/js/foundation.js"></script>
</head>
<body>
<div class="row"><div class="large-12 columns"><button type="button" id="button1">Click Me!</button></div></div>
<div class="row collapse">
<div class="medium-3 columns">
<ul class="tabs vertical" id="example-vert-tabs" data-tabs>
<li class="tabs-title is-active"><a href="#panel1v" aria-selected="true">Tab 1</a></li>
<li class="tabs-title"><a href="#panel2v">Tab 2</a></li>
<li class="tabs-title"><a href="#panel3v">Tab 3</a></li>
<li class="tabs-title"><a href="#panel4v">Tab 4</a></li>
<li class="tabs-title"><a href="#panel5v">Tab 5</a></li>
<li class="tabs-title"><a href="#panel6v">Tab 6</a></li>
</ul>
</div>
<div class="medium-9 columns">
<div class="tabs-content vertical" data-tabs-content="example-vert-tabs" id="tab_content">
<div class="tabs-panel is-active" id="panel1v">
<p>Test1</p>
</div>
<div class="tabs-panel" id="panel2v">
<p>Test2</p>
</div>
<div class="tabs-panel" id="panel3v">
<p>Test3</p>
</div>
<div class="tabs-panel" id="panel4v">
<p>Test4</p>
</div>
<div class="tabs-panel" id="panel5v">
<p>Test5</p>
</div>
<div class="tabs-panel" id="panel6v">
<p>Test6</p>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$(document).foundation();
$("#button1").click(function() {
$("#example-vert-tabs").append('<li class="tabs-title"><a href="#panel7v">Tab 7</a></li>');
$("#tab_content").append('<div class="tabs-panel" id="panel7v"><p>Test7</p></div>');
$(".tabs").foundation();
});
});
</script>
</body>
</html>
但是当我单击该按钮时,我收到以下警告:"Tried to initialize tabs on an element that already has a Foundation plugin." 并且我无法单击新选项卡。
单击时出现此错误:
7123TypeError: undefined is not an object (evaluating '$tabLink[0].hash')
_handleTabChangefoundation.js:7122
(anonymous function)foundation.js:7059
dispatchjquery-2.2.0.js:4731
handlejquery-2.2.0.js:4543
怎么了?
代码中的基本问题是如何初始化选项卡实例。
在基础 6 中,为了创建一个新的选项卡实例 (link),您应该在您的 js 代码中添加如下内容:
var elem = new Foundation.Tabs($('#example-vert-tabs'));
然后每次进行更改和添加或删除选项卡时,您都可以这样调用:
elem = new Foundation.Tabs($('#example-vert-tabs'));
我已经用你的代码创建了一个 codepen 示例,这样你就可以准确地看到发生了什么 (http://codepen.io/MKallivokas/pen/xVgrYM):
$(document).ready(function() {
var elem = new Foundation.Tabs($('#example-vert-tabs'));
$("#button1").click(function() {
$("#example-vert-tabs").append(
'<li class="tabs-title"><a href="#panel7v">Tab 7</a></li>'
);
$("#tab_content").append(
'<div class="tabs-panel" id="panel7v"><p>Test7</p></div>'
);
elem = new Foundation.Tabs($('#example-vert-tabs'));
});
});