gpt4 book ai didi

JavaScript 只工作一次

转载 作者:行者123 更新时间:2023-12-02 16:48:12 25 4
gpt4 key购买 nike

我遇到一些问题。我有页面并让自动刷新 div(table) 内容一切正常,并且我有带有来自 javascript 的过滤器的表,但刷新过滤器后消失了。我尝试再次调用过滤器函数,但没有任何反应。

为什么不使用 setInterval 脚本再次使用 filterJS() ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Main Page</title>

<script type="text/javascript" src="filter/tablefilter.js"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div class="refresh">
<table id="tab" class="my" >
<tr>
<th>World Regions</th>
<th>Population ( 2007 Est.)</th>
<th>Population % of World</th>
<th>Internet Usage, Latest Data</th>
<th>% Population ( Penetration )</th>
<th>Usage % of World</th>
<th>Usage Growth 2000-2007</th>
</tr>
<tr>
<td>Africa</td>
<td>933,448,292</td>
<td>14.2 %</td>
<td>32,765,700</td>
<td>3.5 %</td>
<td>3.0 %</td>
<td>625.8%</td>
</tr>
<tr>
<td>Asia</td>
<td>3,712,527,624</td>
<td>56.5 %</td>
<td>389,392,288</td>
<td>10.5 %</td>
<td>35.6 %</td>
<td>240.7 %</td>
</tr>
<tr>
<td>Europe</td>
<td>809,624,686</td>
<td>12.3 %</td>
<td>312,722,892</td>
<td>38.6 %</td>
<td>28.6 %</td>
<td>197.6 %</td>
</tr>
<tr>
<td>Middle East</td>
<td>193,452,727</td>
<td>2.9 %</td>
<td>19,382,400</td>
<td>10.0 %</td>
<td>1.8 %</td>
<td>490.1 %</td>
</tr>
</table>
</div>

<script language="javascript" type="text/javascript">
//<![CDATA[
function filterJS(){
var table2_Props = {
col_0: "select",
col_5: "none",
display_all_text: " [ Show all ] ",
sort_select: true
};
setFilterGrid( "tab",table2_Props );}
//]]>

filterJS();

$(document).ready(function(){
setInterval(function() {
filterJS();
$('.refresh').load(document.URL + ' .refresh');}, 2000);
});
</script>

</body>
</html>

最佳答案

表更新后调用,使用load()提供的回调参数

setInterval(function() { $('#myTable').load(document.URL +  ' #myTable', filterJS);}, 2000);

您确实应该考虑使用 setTimeout 而不是间隔,这样如果服务器需要一段时间才能响应,调用就不会开始堆积。

function filterJS() {
var table2_Props = {
col_0: "select",
col_1: "select",
col_3: "none",
display_all_text: " [ All ] ",
sort_select: true
};
setFilterGrid("myTable", table2_Props);
window.setTimeout(reloadData, 2000);
};

function reloadData() {
$('#myTable').load(document.URL + ' #myTable', filterJS);
}

关于JavaScript 只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com