目标:我正在尝试刷新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 does not apply styles after dynamically loading content
答案 0 :(得分:1)
这可能有效:
$( '#tab_b' ).live( 'pageinit',function(event){
alert( 'This page was just enhanced by jQuery Mobile!' );
});
我会查看Event API
答案 1 :(得分:0)
我发现你可以用$ .ajax函数获取数据。这将返回整个页面。 我的解决方案是将需要刷新的内容移动到新的php页面, tab_b.php并从那里加载它。不确定这是否是最好的解决方案,但它确实有效。
$.ajax({
url: 'php/tab_b.php',
success: function (data) {
$("#tab_b").html('');
$("#tab_b").append(data).trigger('create');
}
});