我之前使用jquery-ui tabs扩展来加载页面片段ajax,并隐藏或显示div页面中的隐藏页面.这两种方法都有很好的记录,我在那里没有任何问题.
但是,现在我想用标签做一些不同的事情.当用户选择一个标签时,它应该完全重新加载页面 - 原因是每个标签部分的内容渲染起来有些昂贵,所以我不想一次性发送它们并使用普通方法切换'display:none'以显示它们.
我的计划是截取选项卡的select事件,并让该函数通过操作document.location重新加载页面.
在select处理程序中,我如何获得新选择的选项卡索引和它对应的html LI对象?
$('#edit_tabs').tabs( {
selected: 2, // which tab to start on when page loads
select: function(e, ui) {
var t = $(e.target);
// alert("data is " + t.data('load.tabs')); // undef
// alert("data is " + ui.data('load.tabs')); // undef
// This gives a numeric index...
alert( "selected is " + t.data('selected.tabs') )
// ... but it's the index of the PREVIOUSLY selected tab, not …Run Code Online (Sandbox Code Playgroud) 我知道我可以获取当前所选选项卡的索引,但是我可以以某种方式获取当前所选选项卡的ID(相当于ui.panel.id如果这是由选项卡事件触发...但它不是)?我不想使用索引,因为选项卡的顺序可能会改变.我不喜欢使用样式标记,因为在将来的版本中可能会更改.有这个方法吗?如果没有,我可以以某种方式使用索引来访问它(甚至可能首先访问面板对象)?还有其他想法吗?
我正在使用jQuery选项卡,并通过AJAX调用检索其中一个选项卡中的内容.但是我不希望在单击选项卡(激活)之前触发调用,因为用户可能不一定要单击它.最好的方法是什么?
jQuery UI的提供select,并show为标签的事件,但是当这些火灾的任何选项卡中选择或显示,不只是特定(据我所知).
我还尝试将click事件分配给特定选项卡的ID:
$("#my-tab").click(function(){
...
$.post(URL, function(data){
...
});
...
}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何影响,呼叫永远不会被触发.
我正在使用http://jqueryui.com/demos/tabs/#manipulation.我想获得我之前命名的当前所选标签的标题(例如来自href).怎么弄?
我试过了:
$(ui.tab).attr('href')
我遵循这些例子:http://jsfiddle.net/Shef/k6TEZ/,其中使用了callback show().我callback也在执行它,但它似乎不起作用.这是我的html和jquery
HTML
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu,mpus lectus.</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt, d</p>
</div>
<div id="tabs-3">
<p>Mauris eleife.</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$("#tabs").tabs({
show: function(event,ui){
console.log("shown"+ui.index);
}
});
$( "#tabs" ).find( ".ui-tabs-nav" ).sortable({
axis: "x"
});
//tabsactivate
//tabsshow
$('#tabs').on('tabsactivate', function(event, ui) {
$(ui.newTab).data('index',ui.newTab.index());
console.log($(ui.newTab).data('index'),ui.newTab.index());
});
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决为什么show()不解雇?
与jquery ui 1.10它无法正常工作.使用1.9.2它可以工作.
我已经阅读了Jquery UI Tabs(1.7)的文档,我相信在点击特定选项卡时发生特定事件方面,我对Jquery选项卡有点了解.
我有基本选项卡,我只想在选择特定选项卡时将焦点设置在文本框上.
UI Docs声明您通过以下方式处理选择事件:
$('.selector').tabs({
select: function(event, ui) { ... }
});
Run Code Online (Sandbox Code Playgroud)
我不确定上面是什么意思.我在这里通过stackoverflow阅读了一些其他的例子,特别是示例.不幸的是,演示不再适用于所提供的答案.
我使用PHP创建和选择特定选项卡的当前代码是:
$("#tabs").tabs();
$("#tabs").tabs('option', 'selected', <?php echo $tabID-1; ?>);
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.我想添加选择第4个选项卡时的功能,我将焦点设置为文本框,类似于:
$('#subject').focus();
Run Code Online (Sandbox Code Playgroud) 在jquery UI中,使用他们的最新版本,我无法再获取所选标签的ID.我尝试ui.index从jQuery UI选项卡获取当前选定的选项卡索引,但它给了我undefined.
有谁知道现在这样做的方法?
$( "#tabs" ).bind( "tabsactivate", function(event, ui) {
alert(ui.index);
});
Run Code Online (Sandbox Code Playgroud)
在这段代码中,每次选择一个新选项卡时都会收到警报,但是它表示未定义.
谢谢