我正在加载一个动态应用程序(需要20-30秒),我正在尝试创建一个动态进度条,向用户显示在页面加载时动态完成了多少任务。
我通过将buffer设置为false并让我的脚本在进行调整函数来增加滚动条时输出一行JavaScript来实现这一点:
function progress(percent)
{
$(function() {
$("#progressbar").progressbar({value: Math.round((percent*100))});
});
}
这是通过简单的函数调用来调用的,比如我的页面生成的progress(15)并实时发送到浏览器。我用css制作的一个简单的栏很完美,但是现在我正在尝试使用jQuery,似乎我的进度条正在递增但它赢了; t显示在页面上直到页面完成加载或“停止”按下按钮。任何想法为什么会这样?
答案 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))});
}