Using tabs in admin widgets

时间:2011-12-17 作者:dgwyer

更新:我应该指出,我在插件/主题选项页面上测试了下面的方法,效果非常好。事实上,我还能够包括jQuery cookie插件,以保留页面加载之间的当前选项卡选择(很好!)。

当您有多个小部件选项时,尝试向管理小部件添加选项卡以减少表单占用空间。我正在使用WordPress附带的jQuery UI选项卡。以下是我迄今为止在插件中编写的代码。

http://pastebin.com/fe4wdBcp

当小部件被拖动到小部件区域时,选项卡似乎呈现为OK,但您无法单击查看第二个选项卡。更糟糕的是,如果刷新窗口小部件页面,选项卡的格式将完全丢失,并且选项卡仍然不会响应单击事件。

不确定这里有什么问题。感谢您的帮助。

1 个回复
SO网友:onetrickpony

问题是您没有使用唯一ID(#tabs,#tabs-1…),因为小部件有多个实例(相同的ID由“可用小部件”区域中的实例使用)。

因此,只需将小部件实例ID前置或附加到您的标识符中,以使其唯一:

...
<div id="tabs-<?php echo $this->id; ?>">
    <ul>
        <li><a href="#tabs-<?php echo $this->id; ?>-1">Tab One</a></li>
        <li><a href="#tabs-<?php echo $this->id; ?>-2">Tab Two</a></li>
    </ul>
    <div id="tabs-<?php echo $this->id; ?>-1">
        <p><?php _e(\'Textbox 1\') ?>: <input class="widefat" name="<?php echo $this->get_field_name(\'text1\'); ?>" type="text" value="<?php echo esc_attr($text1); ?>" /></p>
        <p><?php _e(\'Textarea 1\') ?>: <textarea class="widefat" name="<?php echo $this->get_field_name(\'textarea1\'); ?>" rows="8" cols="12"><?php echo esc_attr($textarea1); ?></textarea></p>
    </div>
    <div id="tabs-<?php echo $this->id; ?>-2">
        <p><?php _e(\'Textbox 2\') ?>: <input class="widefat" name="<?php echo $this->get_field_name(\'text2\'); ?>" type="text" value="<?php echo esc_attr($text2); ?>" /></p>
        <p><?php _e(\'Textarea 2\') ?>: <textarea class="widefat" name="<?php echo $this->get_field_name(\'textarea2\'); ?>" rows="8" cols="12"><?php echo esc_attr($textarea2); ?></textarea></p>
    </div>
</div>

<script type="text/javascript">
    jQuery(document).ready(function($){
        $("#tabs-<?php echo $this->id; ?>").tabs();
    });
</script>
...
此外,不确定WP 3.3是否已修复this 问题,但在侧边栏中第一次拖动后,需要为id 属性在form()函数中变为可用。

结束

相关推荐

如何修复:在Admin(edit.php)中点击‘快速编辑’链接会使帖子消失?

当我登录并进入帖子管理页面(edit.php)时,if I click the \'Quick Edit\' button, the clicked post disappears from the listing! 这发生在运行WP 3.2.1的FF7和Safari 5.1中。刷新页面会再次在列表中显示帖子,但我找不到使用快速编辑功能的方法。编辑:在后期管理中,单击“快速编辑”后,Firebug显示:a(\"input[name=\\\"ping_status\\\"]\", d).prop is n