cshtml代码
<div class="span3">
@for (var i = 0; i < Model.GroupNames.Count; i++)
{
<ul>
<li>
@{
var item = Model.GroupTypeNames[i];
var selected = i == 0 ? " class=\"selected\"" : "";
}
<a onclick="getGroupType(@item.Id);" data-option-value="*"@Html.Raw(selected)>@item.TypeName</a>
</li>
</ul>
}
</div>
jquery代码
function getGroupType(id) {
debugger;
$.getJSON( "Groups/Get" + id, function (data) {
$(".span9").html($("#GroupTemplate").removeData());
$.each(data, function (index, value) {
if (value.Id != undefined) {
$("#GroupTemplate").tmpl(value).appendTo(".span9");
}
});
$('#circle').css("opacity", "0.5");
});
}
无法在这里接听电话
但是当我尝试使用onclick="alert('Hello');"
时,它正在完美地运作
onclick="getGroupType(@item.Id);"
答案 0 :(得分:1)
我希望你得到错误:
ReferenceError:未定义getGroupType
因为我怀疑您的JavaScript代码出现在文件的后面,而不是onclick
属性。
使用属性时,请确保在属性之前定义函数...通常在<head>
中。说到这一点,通常的做法是稍后包含脚本并将事件附加到脚本中,而不是使用属性。
另外,请确保您的功能未包含在其他功能中。 JavaScript是功能范围的,包含在另一个函数中的函数不能从全局范围调用。
这一切都假设id
实际上是一个数字。如果id
是一个字符串,请记住将其包装在引号中。必须将GUID视为JavaScript中的字符串......
onclick="getGroupType('@item.Id');"
答案 1 :(得分:1)
正如你评论的那样:
我的功能已准备好
所以我认为这是一个范围问题,因为你的onclick
处理程序不在ready函数中,所以你的函数getGroupType(@item.Id);
不可用,而是你可以把它放在gloabal范围之外
getGroupType(id){
// all the stuff
}
$(function(){
// all other stuff
});
答案 2 :(得分:0)
您需要使用单引号包装参数。
onclick="getGroupType('@item.Id');"