c# - 根据 Visual Studio 2010,jQuery 函数 "undefined"

标签 c# javascript jquery asp.net jquery-ui-progressbar

这可能是一个关于 jQuery UI 和 Javascript 的非常简单的问题,但我仍然在摸索这些语法。每当我的 C# (ASP.NET) 程序达到不同函数中的某个点时,我都会尝试更新 jQuery 进度条。我这样做正确吗?我可以在页面上看到空的进度条,但无法让它更新进度。

这是我的脚本:

  <script type="text/javascript">
  $(document).ready(function() {
    $("#progressbar").progressbar({ value: 0 });
  });

function updateProgress(number) {
        if (number < 100) {
            $("#progressbar").progressbar("value", number);
        }
    }
</script>

以下是我的更多脚本引用:

 <link href="Styles/tomcat.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="colorbox.css" />
<script src="Scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.21.custom.js" type="text/javascript"></script>
<script type="text/javascript" src="Scripts/jquery.colorbox.js"></script>
<link href="Content/themes/base/jquery.ui.progressbar.css" rel="stylesheet" type="text/css" />
<link href="Content/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery.ui.core.js" type="text/javascript"></script>
<link href="Scripts/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery.ui.progressbar.js" type="text/javascript"></script>
<link href="Scripts/ui.all.css" rel="stylesheet" type="text/css" />

这里是我尝试通过 C# 函数使用 updateProgress() 函数的地方。我试图将“10%”发送到进度栏,但我的调试器出错并提示 updateProgress() 未定义。

 ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>UpdateProgress(10);</script>", false);

编辑:我添加了以下 bool 值来绕过页面刷新和刷新进度条。

 var runOnce = new Boolean;
runOnce = false;
$(document).ready(function() {
    if(!runOnce)
    {
        $("#progressbar").progressbar({ value: 0 });
        runOnce = true;
    }
});

但我认为它不起作用。它仍然会在每次页面加载时清除并将其设置回零。

最佳答案

javascript 区分大小写。将函数声明更改为 UpdateProgress 或将注入(inject)更改为 updateProgress

我还认为您应该在脚本标记中包含 type="text/javascript" - language 是一个已弃用的属性。相关:What is the difference between "lang" and "type" attributes in a script tag?

编辑:处理被覆盖的进度:

var progressAlreadySet;

$(document).ready(function() {
    $("#progressbar").progressbar(); // initialize

    if (!progressAlreadySet) {
        $("#progressbar").progressbar("value", 0);
    }
});

var updateProgress = function (number) {
    if (number < 100) {
        progressAlreadySet = true;
        $("#progressbar").progressbar("value", number);
    }
};

关于c# - 根据 Visual Studio 2010,jQuery 函数 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471723/

相关文章:

c# - 如何在不使用文件上传的情况下获取文件名并在 asp.net JQuery 中上传文件

c# - 以编程方式将 ListViewItem 添加到 WPF 中的 Listview

javascript - Bootstrap 3 - 将页面刷新到特定选项卡

javascript - rails 4 : JS doesn't work when I follow links

c# - 无法在目标计算机上加载文件或程序集 system.data.sqlite

c# - 获取客户端机器名

javascript - select2 from append 不起作用

javascript - 这两个陈述有什么区别?

javascript - 页面加载时的 History.js getState()

javascript - 如何将新数据合并到旧数组中?