我将下面的所有内容从 .live 更改为 .on 并根据我发现的许多讨论修改了代码,但是当我在 Visual Studio 中运行代码时,我不断收到以下错误:
http://'server':6665/Scripts/jquery.unobtrusive-ajax.js 中第 115 行第 5 列未处理的异常
0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法“live”
Visual Studio 显示错误的文件是 jquery.unobtrusive-ajax.js [dynamic] <-- 这个文件在哪里?在我更改以下所有内容之前,它正在使用已弃用的 .live 方法突出显示旧代码......
我还安装了迁移包,但没有用。
$(document).on("click", "a[data-ajax=true]", function (evt) {
evt.preventDefault();
asyncRequest(this, {
url: this.href,
type: "GET",
data: []
});
});
$(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
var name = evt.target.name,
$target = $(evt.target),
form = $target.parents("form")[0],
offset = $target.offset();
$(form).data(data_click, [
{ name: name + ".x", value: Math.round(evt.pageX - offset.left) },
{ name: name + ".y", value: Math.round(evt.pageY - offset.top) }
]);
setTimeout(function () {
$(form).removeData(data_click);
}, 0);
});
$(document).on("click", "form[data-ajax=true] :submit", function (evt) {
var name = evt.target.name,
form = $(evt.target).parents("form")[0];
$(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []);
setTimeout(function () {
$(form).removeData(data_click);
}, 0);
});
$(document).on("submit", "form[data-ajax=true]", function (evt) {
var clickInfo = $(this).data(data_click) || [];
evt.preventDefault();
if (!validate(this)) {
return;
}
asyncRequest(this, {
url: this.action,
type: this.method || "GET",
data: clickInfo.concat($(this).serializeArray())
});
});
谢谢!托尼