在我的部分视图中,我有这个ajax actionlink
@foreach (var times in Model.ProvidedDateTimes)
{
<tr>
<td>
@times.StartDateTime to @times.EndDateTime
</td>
<td> @Ajax.ActionLink("Delete", "DeleteResponse", new { responseid = @times.ResponseId }, new AjaxOptions { UpdateTargetId="dummy",OnBegin = "begin",OnComplete="complete",OnFailure="fail",OnSuccess = "success"})</td>
</tr>
}
这些是函数
$(function begin() {
alert("begin");
});
$(function complete() {
alert("complete");
});
$(function fail() {
alert("fail");
});
function deleteResponse(id){
var url = $("#providedTimes").data('url');
url = url + "&t=" + new Date().getTime();
$.get(url, function (data) {
$('#providedTimes').html(data);
});
};
当我运行应用程序时,我得到javascript警报开始完成然后失败,都是两次。
当我尝试单击删除时,我会在控制台上看到错误 我渲染的包是
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-2.1.0.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js"));
并在_layout视图中
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/jquery-ui-1.10.4.js")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/Kendo")
@Scripts.Render("~/bundles/toastr")
知道我为什么在控制台出错?
答案 0 :(得分:1)
你想要的是:
function begin() {
alert("begin");
};
$(begin);
所有其他方法都一样。甚至不确定你想在就绪处理程序上调用Fail / Complete。
答案 1 :(得分:1)
定义这样的函数时:
$(function begin() {
alert("begin");
});
你不是真正以你的思维方式“定义”这个功能。 $()
期望一个函数作为参数,你给它一个。它只是执行该功能。一旦完成,该定义不会保留。因此,在此声明之后,begin
不再是其他任何地方的范围。
直接定义您的功能:
function begin() {
alert("begin");
};
如果要在文档准备就绪时执行该功能,您仍然可以将其传递给jQuery对象:
$(begin);