jQuery 选项卡 - 在 ajax 加载期间在容器 div 中显示指示器
jQuery 1.7.1,jQuery UI 选项卡。我有以下表示选项卡的 HTML,
<div id="tabs">
<ul>
<li><a href="t1" title="content">Gallery</a></li>
<li><a href="t2" title="content">Polls</a></li>
<li><a href="t3" title="content">Events</a></li>
</ul>
<div id="content"></div>
</div>
当我单击或选择选项卡时,我需要在“内容”div 容器中显示一个指示器。我尝试了以下
HTML
<div id="content"><img id="ind" src="images/indicator.gif"
alt="Loading..." style="display:none"/></div>
JavaScript
$.ajaxSetup({
cache:false,
beforeSend: function() {
$('#ind').show()
},
complete: function(){
$('#ind').hide()
},
success: function() {}
});
这与以下选项卡选择代码一起使用,我执行该代码以在页面加载时选择默认选项卡,
var $tabs = $('#tabs').tabs();
$tabs.tabs('select', 1);
但每当我单击该选项卡时,指示器都不会显示。知道为什么吗?
jQuery 1.7.1, jQuery UI tabs. I have the following HTML representing tabs,
<div id="tabs">
<ul>
<li><a href="t1" title="content">Gallery</a></li>
<li><a href="t2" title="content">Polls</a></li>
<li><a href="t3" title="content">Events</a></li>
</ul>
<div id="content"></div>
</div>
I need to show an indicator in the 'content' div container when I click or select the tab. I tried the following,
HTML
<div id="content"><img id="ind" src="images/indicator.gif"
alt="Loading..." style="display:none"/></div>
JavaScript
$.ajaxSetup({
cache:false,
beforeSend: function() {
$('#ind').show()
},
complete: function(){
$('#ind').hide()
},
success: function() {}
});
This is working with the following tab select code, which I execute to select a default tab when the page loads,
var $tabs = $('#tabs').tabs();
$tabs.tabs('select', 1);
But whenever i click on the tab, indicator is not displaying. Any idea why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不是您具体问题的答案,但我使用以下方法获得了类似的结果:
This isn't an answer to your specific question but I used the following to achieve a similar result:
jQuery UI Tabs 小部件有一个名为 beforeLoad 的特定事件。
如果您查看Ajax 的官方 jQuery UI 演示,您将看到如何使用该事件来处理错误。它对于在加载时设置选项卡内的内容也很有用。
这是工作代码片段(JS 中只有 1 行重要的行,HTML 中只有 3 行):
请注意,加载指示器位于 隐藏
内的 HTML 中,并且在加载时将其复制到选项卡内容中(一旦选项卡被打开,它将自动替换)已加载)。
The jQuery UI Tabs widget has a specific event called beforeLoad for that.
If you look at the official jQuery UI demo for Ajax you will see how that event is used for handling errors. And it's also useful for setting content inside the tabs while loading.
Here is the working code snippet (there is just 1 important line in JS and 3 lines in HTML):
Notice that the loading indicator is in the HTML inside a hidden
<div>
and it's copied inside the tab content while loading (which will be automatically replaced as soon as tab is loaded).您尚未在选项卡选择中调用任何 ajax。
如果您通过 ajax 调用选项卡内容,则会显示该指示器。
我已经用下面添加的小例子对此进行了测试。
带有额外 JQuery 插件的新代码
You haven't call any ajax in tab selection.
if you are calling tab content by ajax that indicator will display.
I have test this with small example, added below.
New Code with extra JQuery Plugin