3

我使用这个简单的示例来禁止访问第二个选项卡。返回 false 可以正常工作,但我必须先查看要选择哪个选项卡。ui 参数是一个对象,alert(ui),但我不能使用任何 ui 变量或函数。我必须将对象投射到某些东西上吗?

<!doctype html>
<html lang="de">
<head>
    <meta  http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    <title>tabs demo</title>
    <link rel="stylesheet" href="css/jquery-ui.css">
    <script src="libraries/jquery-1.8.3.js"></script>
    <script src="libraries/jquery-ui.js"></script>
</head>
<body>

<div id="tabs" style="position:absolute;top:0px;left:0px;width:800px;height:600px">
    <ul>
        <li><a href="#fragment-1"><span>Überblick</span></a></li>
        <li><a href="#fragment-2"><span>System</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$( "#tabs" ).tabs(); </code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh     
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
    </div>
</div>

<script>

$(function() {
   $( "#tabs" ).tabs({

        beforeActivate: function( event, ui ) { alert( ui.newTab.id ); }
    });
});


</script>

</body>
</html>
4

2 回答 2

2

你为什么不直接禁用标签。

禁用(索引)

禁用选项卡。无法禁用选定的选项卡。要一次禁用多个选项卡,请设置 disabled 选项:$( "#tabs" ).tabs( "option", "disabled", [ 1, 2, 3 ] )。

http://api.jqueryui.com/tabs/#method-disable

让用户相信,他可以点击一个元素,实际上,他不能是糟糕的 UI 设计!

于 2012-11-29T14:12:37.833 回答
1

尝试这个:

$("#tabs").tabs({

    beforeActivate: function(event, ui) {
        alert(ui.newTab.find("a").attr("href"));
        return false;
    }
});​
于 2012-11-29T14:18:08.913 回答