在我的部分 View 中,我有这个ajax操作链接
@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"));
在_布局 View 中
@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")
知道为什么我在控制台中收到错误吗?
最佳答案
当你定义这样的函数时:
$(function begin() {
alert("begin");
});
您并没有按照您的想法真正“定义”该函数。 $()
需要一个函数作为参数,而您给了它一个函数。它所做的就是执行该函数。一旦完成,该定义就不会保留。因此,紧随此语句之后,begin
不再位于其他任何地方的范围内。
直接定义你的函数:
function begin() {
alert("begin");
};
如果您想在文档准备好时执行该函数,您仍然可以将其传递给 jQuery 对象:
$(begin);
关于javascript - 在 Ajax 链接上单击 javascript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22382389/