1

ページにコンテンツをロードするために jQuery を使用してスクリプトを作成しています。実行時には何も起こりません。Firebug コンソールを調べると、次のエラーが表示されます。

TypeError: cyclic object value  
data: JSON.stringify({ columnName: _columnName })

コードは次のとおりです (<Head> 内に配置):

<Script>
function changeContent(_columnName) {
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetContent")',
            data: JSON.stringify({ columnName: _columnName }),
            dataType: 'json',
            contentType: "application/json; charset=utf-8"
        }).done(function (resp) {
            CKEDITOR.instances.text.setData(resp.Text);
        }).fail(function () {
            alert("Error");
        });
    }
    $(function () {
        $("#side-content").bind('click', { a: "side" }, changeContent);
    });
</Script>

ここでヒントを使用しました: JavaScript で循環参照を検出して修正しましたが、循環関係が見つかりませんでした!!!

私の命を救うための任意のポイントは、非常に高く評価されます.
- カムラン

4

1 に答える 1

0

問題が解決され、十分に理解された

問題の主な部分は、ハンドラーの引数が DOM イベントであることを知らなかったことです。_columnName間違ったイベントデータを受け取ると思っていました。実はDOMイベントです。

作業コードは次のとおりです。

<script>
    function changeContent(event) {
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetHomeColumnContent")',
            data: JSON.stringify({ columnName: event.data.a }),
            dataType: 'json',
            contentType: "application/json; charset=utf-8"
        }).done(function (resp) {
            CKEDITOR.instances.text.setData(resp.Text);
        }).fail(function () {
            alert("Error");
        });
    }
    $(function () {
        $("#side-content").bind('click', { a: 'side' }, changeContent);
    });
</script>

巡回値について: DOM 要素は本質的に巡回的です。すべての DOM 要素がその親への参照を持ち、すべての親がその子への参照を持っているため、巡回構造です。

時間を割いてくれたすべての友人に感謝します: @Dogbert、@nnnnnn、@AD7six、@Xotic750 ;-)

于 2013-07-10T13:48:26.470 に答える