无法在初始化之前调用选项卡上的方法;试图调用方法 'load'
cannot call methods on tabs prior to initialization; attempted to call method 'load'
我正在尝试使用 jquery-ui .tabs 方法 refresh/load bootstrap 标签。
$('#myTab a').on('click', function () {
console.log("sanity check");
$("#myTab").tabs('load')
})
但我收到此错误
cannot call methods on tabs prior to initialization; attempted to call method 'load'
我知道 bootstrap 和 jquery-ui 冲突,但我不明白我做错了什么
这就是我包含 bootstrap 和 jquery 插件的方式:
<!-- Bootstrap core JavaScript -->
<script src="/jquery.min.js"></script>
<script src="/jquery-ui.min.js"></script>
<!-- Plugin JavaScript -->
<script src="/jquery.easing.min.js"></script>
<script src="/bootstrap.bundle.min.js"></script>
我已经删除了这里的实际路径所以不要混淆它。
这是准确的错误:
jquery.min.js:2 Uncaught Error: cannot call methods on tabs prior to
initialization; attempted to call method 'load'
at Function.error (jquery.min.js:2)
at HTMLUListElement.<anonymous> (jquery-ui.min.js:6)
at Function.each (jquery.min.js:2)
at k.fn.init.each (jquery.min.js:2)
at k.fn.init.t.fn.<computed> [as tabs] (jquery-ui.min.js:6)
at HTMLAnchorElement.<anonymous> (products.js:65)
at HTMLAnchorElement.dispatch (jquery.min.js:2)
at HTMLAnchorElement.v.handle (jquery.min.js:2)
error @ jquery.min.js:2
(anonymous) @ jquery-ui.min.js:6
each @ jquery.min.js:2
each @ jquery.min.js:2
t.fn.<computed> @ jquery-ui.min.js:6
(anonymous) @ products.js:65
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
这是html代码
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data- toggle="tab"
href="#dashboard" role="tab" aria-controls="home" aria-
selected="true">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#liked"
role="tab" aria-controls="contact" aria-selected="false">Liked by you</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link" id="profile-tab" data- toggle="tab" href="#posts"
role="tab" aria-controls="profile" aria-selected="false">your posts</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<!-- dashboard -->
<div class="tab-pane fade show active" id="dashboard" role="tabpanel"
aria-labelledby="home-tab">
</div>
<!-- posts -->
<div class="tab-pane fade" id="posts" role="tabpanel" aria-
labelledby="posts-tab">
</div>
<!-- liked -->
<div class="tab-pane fade" id="liked" role="tabpanel" aria-
labelledby="liked-tab">
</div>
cannot call methods on tabs prior to initialization; attempted to call method 'load'
这告诉您在开始调用 load
方法时您还没有初始化 tabs
。
所以你需要在调用 load
:
之前像这样初始化它们
$("#myTab").tabs();
这里有一些 reference 如何使用 Jquery tabs
您的 HTML 格式不正确。参见示例:https://jqueryui.com/tabs/
您必须将 Tabs 包装在 DIV 中。
$(function() {
$("#myTab").tabs();
$('#myTab a').on('click', function() {
console.log("sanity check");
$("#myTab").tabs('load')
})
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="myTab">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data- toggle="tab" href="#dashboard" role="tab" aria-controls="home" aria- selected="true">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#liked" role="tab" aria-controls="contact" aria-selected="false">Liked by you</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link" id="profile-tab" data- toggle="tab" href="#posts" role="tab" aria-controls="profile" aria-selected="false">your posts</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<!-- dashboard -->
<div class="tab-pane fade show active" id="dashboard" role="tabpanel" aria-labelledby="home-tab">
</div>
<!-- posts -->
<div class="tab-pane fade" id="posts" role="tabpanel" aria- labelledby="posts-tab">
</div>
<!-- liked -->
<div class="tab-pane fade" id="liked" role="tabpanel" aria- labelledby="liked-tab">
</div>
</div>
</div>
我正在尝试使用 jquery-ui .tabs 方法 refresh/load bootstrap 标签。
$('#myTab a').on('click', function () {
console.log("sanity check");
$("#myTab").tabs('load')
})
但我收到此错误
cannot call methods on tabs prior to initialization; attempted to call method 'load'
我知道 bootstrap 和 jquery-ui 冲突,但我不明白我做错了什么
这就是我包含 bootstrap 和 jquery 插件的方式:
<!-- Bootstrap core JavaScript -->
<script src="/jquery.min.js"></script>
<script src="/jquery-ui.min.js"></script>
<!-- Plugin JavaScript -->
<script src="/jquery.easing.min.js"></script>
<script src="/bootstrap.bundle.min.js"></script>
我已经删除了这里的实际路径所以不要混淆它。
这是准确的错误:
jquery.min.js:2 Uncaught Error: cannot call methods on tabs prior to
initialization; attempted to call method 'load'
at Function.error (jquery.min.js:2)
at HTMLUListElement.<anonymous> (jquery-ui.min.js:6)
at Function.each (jquery.min.js:2)
at k.fn.init.each (jquery.min.js:2)
at k.fn.init.t.fn.<computed> [as tabs] (jquery-ui.min.js:6)
at HTMLAnchorElement.<anonymous> (products.js:65)
at HTMLAnchorElement.dispatch (jquery.min.js:2)
at HTMLAnchorElement.v.handle (jquery.min.js:2)
error @ jquery.min.js:2
(anonymous) @ jquery-ui.min.js:6
each @ jquery.min.js:2
each @ jquery.min.js:2
t.fn.<computed> @ jquery-ui.min.js:6
(anonymous) @ products.js:65
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
这是html代码
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data- toggle="tab"
href="#dashboard" role="tab" aria-controls="home" aria-
selected="true">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#liked"
role="tab" aria-controls="contact" aria-selected="false">Liked by you</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link" id="profile-tab" data- toggle="tab" href="#posts"
role="tab" aria-controls="profile" aria-selected="false">your posts</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<!-- dashboard -->
<div class="tab-pane fade show active" id="dashboard" role="tabpanel"
aria-labelledby="home-tab">
</div>
<!-- posts -->
<div class="tab-pane fade" id="posts" role="tabpanel" aria-
labelledby="posts-tab">
</div>
<!-- liked -->
<div class="tab-pane fade" id="liked" role="tabpanel" aria-
labelledby="liked-tab">
</div>
cannot call methods on tabs prior to initialization; attempted to call method 'load'
这告诉您在开始调用 load
方法时您还没有初始化 tabs
。
所以你需要在调用 load
:
$("#myTab").tabs();
这里有一些 reference 如何使用 Jquery tabs
您的 HTML 格式不正确。参见示例:https://jqueryui.com/tabs/
您必须将 Tabs 包装在 DIV 中。
$(function() {
$("#myTab").tabs();
$('#myTab a').on('click', function() {
console.log("sanity check");
$("#myTab").tabs('load')
})
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="myTab">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data- toggle="tab" href="#dashboard" role="tab" aria-controls="home" aria- selected="true">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#liked" role="tab" aria-controls="contact" aria-selected="false">Liked by you</a>
</li>
<li class="nav-item ml-auto">
<a class="nav-link" id="profile-tab" data- toggle="tab" href="#posts" role="tab" aria-controls="profile" aria-selected="false">your posts</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<!-- dashboard -->
<div class="tab-pane fade show active" id="dashboard" role="tabpanel" aria-labelledby="home-tab">
</div>
<!-- posts -->
<div class="tab-pane fade" id="posts" role="tabpanel" aria- labelledby="posts-tab">
</div>
<!-- liked -->
<div class="tab-pane fade" id="liked" role="tabpanel" aria- labelledby="liked-tab">
</div>
</div>
</div>