【发布时间】:2012-01-27 04:08:06
【问题描述】:
我使用 jquery 大约 1 天大,目前正在做噩梦。我已经花了半天时间试图摆脱这个错误。 在“谷歌搜索”错误(对不起,Bing!)后,我做了一些阅读,发现大多数这些错误是由于 jquery 文件没有正确加载造成的。好吧……这开始为我指明了正确的方向,但我仍然无法弄清楚为什么它的路径不正确。我的意思是,我按照人们说的做——我会将 .js 文件拖到我的设计器中,它会打印出正确的路径,但仍然显示错误。
这是我在编辑器模板中的确切代码(有错误):
@model bool
@{
string status = "Active";
string buttonValue = "Deactivate";
string hiddenValue = "true";
if (!ViewData.Model)
{
status = "Inactive";
buttonValue = "Activate";
hiddenValue = "false";
}
}
<div style="width:100px; float:left;">
<img id = "AD_Img" src = "/Content/themes/base/images/icon_@(status).png" alt = @(status) />
<label for = "AD_Img" id = "AD_Label" >@(status)</label>
</div>
<div style="width:100px; float:left;">
<input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" />
<input id = "AcntStatus" type = "hidden" name = "AcntStatus" value = @(hiddenValue) />
</div>
在同一个cshtml文件中,脚本是这样的:
<script type="text/javascript" src="/Scripts/jquery-1.5.1.min.js">
function ChangeStatus()
{
var ButtonVal = $("#AD_Button").val();
alert(ButtonVal);
if (ButtonVal == "Deactivate")
{
var stat = "Inactive";
var buttonVal = "Activate";
var HiddenValue = "false";
}
else if (ButtonVal == "Activate")
{
stat = "Active";
buttonVal = "Deactivate";
HiddenValue = "true";
}
$("#AD_Img").attr({src: "/Content/themes/base/images/icon_"+stat+".png", alt: stat});
$("#AD_Label").html(stat);
$("#AD_Button").val(buttonVal);
$("#AcntStatus").val(HiddenValue);
}
</script>
调试器在以下行的输入元素的 ChangeStatus 函数处停止:
<input type="button" id = "AD_Button" value = @(buttonValue) style = "width:100px" onclick = "ChangeStatus()" />
我尝试在我的函数代码中使用它来调试它:
function ChangeStatus()
{
var ButtonVal = document.getElementById("AD_Button").value;
alert(ButtonVal);
}
而且它工作正常,它返回我正在寻找的确切字符串而没有该错误,但为什么呢?我的代码有什么问题? 请帮我解决这个问题。
【问题讨论】:
-
每当我在 javascript src 标签中看到
../时,它就是一个大红旗。 -
为什么要创建
True和False变量?只需使用true和false文字就不需要 vars,您的代码将使用文字运行得更快。由于您是 jQuery 新手,我假设这不是通过缩小变量重命名来节省成本的尝试。如果这是没有必要的原因,因为您还应该对代码进行 gzip 压缩,并且 gzip 压缩后的差异可以忽略不计,不值得性能损失。 -
@JoelCoehoorn:我明白了。那么我应该只使用 src="/Content/themes/base/images/icon_@(status).png" 和 src="/Scripts/jquery-1.5.1.min。 js" 代替。谢谢你的提示。 :)
-
@UselessCode:我创建它们是为了将“@ViewBag.Model”和/或“@Model”的值分配给它们(我在 jquery 的 $ 之前使用它)但使用jquery 使它无用。也感谢您的评论。 :)
标签: javascript jquery asp.net-mvc-3