2013-07-10 65 views
1

我正在寫一個腳本,使用jQuery將一些內容加載到我的頁面中。 在運行時沒有任何反應。檢查Firebug的控制檯,當我得到這個錯誤:在代碼中找到一個圓形對象

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

下面是代碼(放在裏面<頭>):

<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 fixing circular references in JavaScript,但找不到任何循環關係! !

任何關於挽救我的生命的觀點都將非常感激。
- 卡姆蘭

+5

你真的想通過AJAX發送DOM事件對象? – Dogbert

+4

要擴展Dogbert的說法,請嘗試'function changeContent(e,_columnName){...'(要查看當前版本有什麼問題,請將'console.log(_columnName)'添加爲函數的第一行。 ) – nnnnnn

+1

@Kamran看看對象是什麼(nnnnnn的評論),你可能會爲自己回答。 – AD7six

回答

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 ;-)

相關問題