使用php检测活动的jqueryui选项卡?

时间:2014-01-06 12:24:45

标签: php session jquery-ui-tabs

有没有办法使用php检测哪个标签处于活动状态?原因是我想“重置”非活动标签以显示其默认内容,而不是上一次执行的操作。

我发现这段代码有助于记住哪些标签处于活动状态(页面刷新后) - 效果很好:

<script type="text/javascript">
  $(function() {

//      http://balaarjunan.wordpress.com/2010/11/10/html5-session-storage-key-things-to-consider/
//
//  Define friendly index name
var index = 'key';
//  Define friendly data store name
var dataStore = window.sessionStorage;
//  Start magic!
try {
    // getter: Fetch previous value
    var oldIndex = dataStore.getItem(index);
} catch(e) {
    // getter: Always default to first tab in error state
    var oldIndex = 0;
}
$('#tabs').tabs({
    // The zero-based index of the panel that is active (open)
    active : oldIndex,
    // Triggered after a tab has been activated
    activate : function( event, ui ){
        //  Get future value
        var newIndex = ui.newTab.parent().children().index(ui.newTab);
        //  Set future value
        dataStore.setItem( index, newIndex ) 
    }
}); 
}); 

1 个答案:

答案 0 :(得分:1)

您无法使用PHP检测HTML内容,当输出完成后,与服务器的连接已关闭,您无法再访问服务器。

唯一的方法是Ajax,但这对于没有页面重新加载的实时修饰符来说是无稽之谈。 您应该使用纯JQUery来解决这个问题。

您可以制作2个内容容器,并以隐藏状态显示内容的一个原始版本,并进行编辑。

<div id="original" style="display: none;">
    original content
</div>
<div id="custom">
    custom content
</div>

如果要恢复原始文本,可以切换容器显示:

<script type="text/javascript">
    $("#original").toggle();
    $("#custom").toggle();
</script>

甚至用原始内容覆盖修改后的内容:

<script type="text/javascript">
    $("#custom").html($("#original").html());
</script>