作为 Mutable Labs 的首席开发人员,我发现在使用 Yii Bootstrap 选项卡(Tabs) 组件的时候,我们有时需要用户直接看到指定的选项卡,而不是第一个。Yii Bootstrap 已经提供了 "active" 变量,通过它你可以在 PHP 中定义显示哪个选项卡。我发现这种方式也是非常麻烦的,因为我们需要为每一个选项卡组件插入 PHP 代码或扩展选项卡组件以某种方法实现它。
不管怎样,我找到了对我来说最好的方法--JQuery的解决方案,如下。确保选项卡区域的 ID 为 "tabs",如果有多个选项卡区域,对其他区域的选项卡使用同样的代码。只需要把这个代码放到layout文件或header文件中...
《script》 $(document).ready(function() { $('#tabs a:contains("")').tab('show'); });《script》
然后你只需要在URL 中设置 "tab" 变量。设置的选项卡就会在页面加载时显示。下面是如何使用它的例子,前提你已经添加了上面的代码...
widget("bootstrap.widgets.TbTabs", array( "id" => "tabs", "type" => "tabs", "tabs" => array( array("label" => "Books", "content" => "Some content", "active" => true), array("label" => "Authors", "content" => "Some content"), ),)); ?>
访问的 URL 如下 ...
index.php?r=controller/action&tab=Authors
选项卡会使用 "Authors" 选项卡作为活动选项卡而不是 "Books",如果 GET 参数中没有指定 tab 则会使用默认的活动选项卡如例子中的 "Books" 选项卡。