Javascript 使用jQuery加载文件,计算类的元素数并设置间隔比率
我试图实现的是加载一个文件,计算它的类元素,然后在(2秒*元素数)的持续时间内显示它 现在我可以使用jQuery加载该文件:Javascript 使用jQuery加载文件,计算类的元素数并设置间隔比率,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图实现的是加载一个文件,计算它的类元素,然后在(2秒*元素数)的持续时间内显示它 现在我可以使用jQuery加载该文件: function load() { $(document).ready(function(){ // load my file $('#content').load('phpScripts/someFile.php'); }); // count items i = $('.displayItem').length; } 然后使用间隔
function load() {
$(document).ready(function(){
// load my file
$('#content').load('phpScripts/someFile.php');
});
// count items
i = $('.displayItem').length;
}
然后使用间隔显示项目
setInterval(load, i*2000);
但我不在这个范围内(我想我已经宣布它是全球性的)
然后我尝试使用ajax:
function start() {
$(document).ready(function(){
$.ajax({
url: "phpScripts/infoScreenContent.php",
dataType: 'html',
success: function(data) {
$("#content").html(data);
i = $('.displayItem').length;
alert(i);
}
});
});
// return i;
}
start();
现在I=是我元素的计数,它在函数中起作用,但我需要将它传递给另一个
setInterval(start, i*2000);
但i=0
我试图像在PHP中一样返回这个,但它不起作用
请给我一些提示。在
$(document)的第一个参数中传递的代码。ready(…)
函数仅在文档完成加载时执行。因此,在第一个示例中,当您调用setInterval(load,…)
时,每i*2000 ms说一次:“当文档完成加载时,将'phpscript/someFile.php'
加载到$('#content')
”。但是文档只完成一次加载,对吗
这是您的第一个问题-加载更多内容的代码只执行一次
现在使用setInterval
,一旦启动,它将以相同的间隔永远运行。您不能通过更改i
的值来调整它。为什么?因为间隔只计算一次,所以当执行行setInterval(load,i*2000)时代码>。表达式i*2000
被转换成一个值,然后传递给函数setInterval
如果要执行某些延迟不断变化的代码,则应改用setTimeout
。我的意思是:
$(document).ready(function(){
var elementDisplayTime = 500;
// All functions defined inside this scope will 'see' this variable.
function loadNext() {
// Your code for loading new content here
}
function clock() {
// Load next item
loadNext();
// See for how long we have to display it
var count = $('.displayItem').length;
// Schedule changeover after delay depending on count
window.setTimeout(clock, count * elementDisplayTime);
}
// Start the clock
clock();
});
我的亲戚