1

目标:我正在尝试刷新 div 内的内容,以便如果用户登录,页面会动态更改。

进展:我的第一次尝试是使用$("#tab_b").load("php/tabs.php #tab_b");,但这并没有更新 DOM,因此没有应用 jquery 样式。然后我尝试添加 .trigger('create') 函数$("#tab_b").trigger('create');这只会导致样式闪烁在几分之一秒内打开和关闭。然后我尝试了似乎可以工作的 .append() 函数,我正在使用以下代码来测试该函数并且它有效:

$("#tab_b").html('');
$("#tab_b").append("<button type='submit' data-theme='a'>Test button</button>").trigger('create');

我唯一的问题是从 php 文件中获取内容,然后将其附加到 div 中。

应该刷新的内容: “#tab_b”

<div id="tab_b" class="content_div">    
    <?php

    if(!isLoggedIn())
    {
        ...
    }
    else
    {
        echo("
        <button type='submit' data-theme='a' id='logout' >Logout</button>
         ");
    }
    ?>
</div>

关于如何做到这一点的任何想法?也欢迎任何关于改进的建议,我是一个初学者程序员。

这个问题试图解决我在另一个主题中讨论的一个更大的问题:

jQuery Mobile 在动态加载内容后不应用样式

4

2 回答 2

1

这可能有效:

$( '#tab_b' ).live( 'pageinit',function(event){
  alert( 'This page was just enhanced by jQuery Mobile!' );
});

我会调查事件 API

于 2012-03-29T13:02:24.983 回答
0

我发现您可以使用 $.ajax 函数获取数据。这将返回整个页面。我的解决方案是将需要刷新的内容移动到新的 php 页面 tab_b.php 并从那里加载。不确定这是否是最好的解决方案,但它有效。

$.ajax({
     url: 'php/tab_b.php',
     success: function (data) {
          $("#tab_b").html('');
          $("#tab_b").append(data).trigger('create');
     }
});
于 2012-04-13T09:29:46.250 回答