以下程序适用于早期版本的jQuery UI,但它在最新版本中不起作用。
select属性不会调用handleSelect
变量中的函数。请参阅以下小提琴:working tabs program
这是我的jQuery UI 1.10.3的代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tabs</title>
<link rel="stylesheet" href="css/smoothness/jquery-ui-1.10.2.custom.css">
<link rel="stylesheet" href="css/tabSelect.css">
</head>
<body>
<div id="myTabs">
<ul>
<li><a href="#a">Tab 1</a></li>
<li><a href="#b">Tab 2</a></li>
</ul>
<div id="a">This is the content panel linked to the first tab, it is shown by default.</div>
<div id="b">This is the content panel linked to the second tab, it is shown when its tab is clicked.</div>
</div>
<script type="text/javascript" src="development-bundle/jquery-1.9.1.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.tabs.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.effect.js"></script>
<script type="text/javascript" src="development-bundle/ui/jquery.ui.effect-blind.js"></script>
<script type="text/javascript">
(function($) {
var handleSelect = function(e, tab) {
$("<p></p>", {
text: "Tab at index " + tab.index + " selected",
"class": "status-message ui-corner-all"
}).appendTo(".ui-tabs-nav", "#myTabs").fadeOut(5000, function(){
$(this).remove();
});
},
tabOpts = {
select : handleSelect
};
$("#myTabs").tabs({ select: handleSelect});
})(jQuery);
</script>
</body>
</html>
答案 0 :(得分:7)
请参阅upgrade guide了解jQuery UI 1.10
删除了
select
个事件;使用beforeActivate
(#7154)
select
事件已被移除,转而使用beforeActivate
。 See the 1.9 deprecation notice了解详情。
这是 jsfiddle
替换
$("#myTabs").tabs({ select: handleSelect});
与
$("#myTabs").tabs({ beforeActivate: handleSelect});
修改强>
注意到你的索引也不适用于1.10。更新了我的小提琴! 请参阅docu。
var handleSelect = function(e, tab) {
$("<p></p>", {
//this is new
text: "Tab at index " + tab.newTab.index() + " selected",
"class": "status-message ui-corner-all"
}).appendTo(".ui-tabs-nav", "#myTabs").fadeOut(5000, function(){
$(this).remove();
});
}