JQuery UI进度条在页面完全加载之前不会显示

时间:2010-08-08 22:45:20

标签: html jquery-ui

我正在加载一个动态应用程序(需要20-30秒),我正在尝试创建一个动态进度条,向用户显示在页面加载时动态完成了多少任务。

我通过将buffer设置为false并让我的脚本在进行调整函数来增加滚动条时输出一行JavaScript来实现这一点:

function progress(percent)
{
 $(function() {
  $("#progressbar").progressbar({value: Math.round((percent*100))});
 });
}

这是通过简单的函数调用来调用的,比如我的页面生成的progress(15)并实时发送到浏览器。我用css制作的一个简单的栏很完美,但是现在我正在尝试使用jQuery,似乎我的进度条正在递增但它赢了; t显示在页面上直到页面完成加载或“停止”按下按钮。任何想法为什么会这样?

2 个答案:

答案 0 :(得分:1)

您是否将其包含在$(document).ready(回调中?如果是这样就是问题。 <{1}}在DOM加载之前不会运行。

也可能是如果页面正在加载,它还没有运行JS,或者在DOM中找不到$(document).ready。这可能是因为您在编写#progressbar div之前调用函数

<强>正确

#progressbar

<强>不正确

<div id="progressbar"></div>
<script type="text/javascript">/* Function call */</script>

我建议制作页面模板(页眉,页脚等,需要大量服务器端处理的所有内容),然后输入附加到<script type="text/javascript">/* Function call */</script> <div id="progressbar"></div> 的进度条AJAX电话。

答案 1 :(得分:1)

你使用的是'document.ready'符号$(function(){})的简写等价物;仅在装载dom后才会发射

如果您的功能未被包装,那么您将全部设置

function progress(percent)
{
     $("#progressbar").progressbar({value: Math.round((percent*100))});
}