0

以下のすべてを .live から .on に変更し、見つけた多くの議論に従ってコードを修正しましたが、Visual Studio でコードを実行すると、以下のエラーが発生し続けます。

http://'server':6665/Scripts/jquery.unobtrusive-ajax.js の 115 行目、5 列目の未処理の例外

0x800a01b6 - JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド「ライブ」をサポートしていません

そして、Visual Studio が間違っていると表示しているファイルは jquery.unobtrusive-ajax.js [動的] <-- このファイルはどこですか? 以下のすべてを変更する前に、非推奨の .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())
    });
});

ありがとう!トニー

4

3 に答える 3

1

jquery 移行プラグインを追加し、それを bundles.config ファイルに含めました

PM> Install-Package jQuery.Migrate

そしてbundlesConfig.csで

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                   "~/Scripts/jquery-migrate-1.2.1.js",
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));
于 2014-12-18T11:10:20.593 に答える
0

.Live は jquery 1.9 以降から削除されました http://jquery.com/upgrade-guide/1.9/

jquery.unobtrusive-ajax.js古いバージョンの jquery に依存しているため、アップグレードする必要があります。

于 2013-03-26T21:42:21.223 に答える
0

私は最近、$("foo").live() でエラーが発生した C# プロジェクトにいくつかの変更を加える必要がありました。$("foo").on() への変更でも、動的スクリプトが原因でエラーが発生しました。

キャッシュされているため、古いコードが表示されています。IE 11 の場合は、次の手順を実行します。インターネット オプション -> 一般 -> 閲覧の履歴 -> 設定 -> IE を起動するたびに新しいバージョンを確認します。または、必要に応じてページにアクセスするたびに。

于 2015-05-19T00:33:52.263 に答える