Функция jQuery "undefined" в соответствии с Visual Studio 2010
Это может быть довольно простой вопрос о jQuery UI и Javascript, но я все еще чувствую свой путь через этот синтаксис. Я пытаюсь обновить индикатор выполнения jQuery всякий раз, когда моя программа на C# (ASP.NET) достигает определенной точки в разных функциях. Я делаю это правильно? Я вижу пустой индикатор выполнения на своей странице, но не могу обновить его.
Вот мои сценарии:
<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" />
И здесь я пытаюсь использовать функцию updateProgress() через функцию C#. Я пытаюсь отправить "10%" на индикатор выполнения, но мой отладчик выдает ошибку и говорит, что updateProgress() не определен.
ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>UpdateProgress(10);</script>", false);
РЕДАКТИРОВАТЬ: я добавил следующее логическое значение, чтобы обойти страницу обновления и обновления моего индикатора выполнения.
var runOnce = new Boolean;
runOnce = false;
$(document).ready(function() {
if(!runOnce)
{
$("#progressbar").progressbar({ value: 0 });
runOnce = true;
}
});
Я не думаю, что это работает, хотя Он по-прежнему очищает и обнуляет каждую загрузку страницы.
1 ответ
Javascript чувствителен к регистру. либо измените объявление вашей функции на UpdateProgress
или измените инъекцию на updateProgress
,
Также я считаю, что вы должны в том числе type="text/javascript"
в вашем теге сценария - язык является устаревшим атрибутом. related: В чем разница между атрибутами "lang" и "type" в теге сценария?
Редактировать: чтобы справиться с процессом перезаписи:
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);
}
};