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>

我在这里使用了提示:Detecting and fix circular references in 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 回答