我有一个div每3秒刷新一次,但当div刷新时,css不会渲染。这是我的代码。
in html
<div id="statusbar"></div>
在js
$( document ).ready(function(){
update2();
function update2() {
$('#statusbar').load('statusbar.php');
$('#statusbar').trigger('create');
statustimeout = setTimeout("update2()", 3000);
}
});
我正在使用JQuery mobile。我是新手所以请详细说明。 TY提前!
答案 0 :(得分:1)
update2()
不能是字符串,它必须是一个函数(所以只需要function(){ update2() }
而不是"update2()"
)。您的函数调用也需要在定义之后。
答案 1 :(得分:1)
你做错了。
加载是异步 AJAX 功能,因此您无法直接调用触发器(&#39;创建&#39;)。基本上代码永远不会等待异步函数结束,代码执行会更进一步,触发(&#39;创建&#39;)将无法增强任何内容。
要正确执行此操作,您需要执行加载功能并等待成功回调才能触发,如下所示:
$('#statusbar').load("statusbar.php", function() {
alert( "Load was performed." );
$('#statusbar').trigger('create');
});
其次,您正在以错误的方式使用触发器(&#39;创建&#39;)。它应该在 data-role =&#34; content&#34; div上触发,因为它的主要目的是增强整个内容,而不是它的一部分。就像触发器(&#39; pagecreate&#39;)用于增强整个页面一样,应该在 data-role =&#34; page&#34; 强> div。如果您使用的是jQuery Mobile 1.4,那么您应该使用 enhanceWithin() 。
所以一切都应该是这样的:
$('#statusbar').load("statusbar.php", function() {
alert( "Load was performed." );
$('#statusbar').enhanceWithin();
});
答案 2 :(得分:0)
$(document).ready(function () {
var update2 = function () {
$('#statusbar').load('statusbar.php');
$('#statusbar').trigger('create');
};
setTimeout(function () {
update2();
/* this function isn't hoisted,
so you can only call it after it's declared */
}, 5000 /*your timeout value*/);
});