jquery ui tabs select似乎在1.10.3中不起作用

时间:2013-05-05 13:53:58

标签: javascript jquery jquery-ui

以下程序适用于早期版本的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>

1 个答案:

答案 0 :(得分:7)

请参阅upgrade guide了解jQuery UI 1.10

  

删除了select个事件;使用beforeActivate

     

(#7154)select事件已被移除,转而使用beforeActivateSee 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();
        });
}