2011-10-05 94 views
0

我通過javascript在<table>中創建新行。行已添加,但我無法查看通過Internet Explorer中的開發人員工具新創建的行的源代碼。我可以通過Firefox中的螢火蟲查看它。在<table>中添加新行後查看源代碼

問題是我正在對這些行的dojo進行拖放操作。任何已經在表格中的行都可以拖放,但是當我創建一個新行時,那麼在生成後,新行不能拖放,因爲它沒有添加到源代碼中,dojo也找不到要拖動的行。

這是創建新行的代碼。

var tbody = document.getElementById('myTable').getElementsByTagName("tbody")[0]; 
var row = tbody.insertRow(rowCount); 
var cell1 = row.insertCell(0); 

var element2 = document.createElement('input');  
element2.value = "valueHere"; 
element2.type = "text"; 

cell1.appendChild(element2); 
row.appendChild(cell1); 
tbody.appendChild(row); 

當我試圖拖動新行道場給出錯誤

'getItem(...).type' is null or not an object 
+1

當調用[insertRow](http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-39872903)時,您不必追加行,它是* insertRow *方法。 [insertCell](http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-68927016)相同(即腳本的最後兩行是冗餘的)。 – RobG

+0

感謝RobG,但我的問題依然存在。 –

+1

JavaScript不會改變您的代碼,它會改變DOM。因此,爲什麼你不會在IE的源視圖中看到它。 –

回答

0

有這道場沒有更新的問題它可拖動節點。另外通過查看源代碼不會顯示新創建的行。 Dojo dnd源有一個名爲autoSync的屬性。請參閱dojo.dnd.Source api。它的默認設置爲false,但啓用它的工作。它會自動同步節點,並且所有新生成的節點都可以拖放。

1

最有可能的後新行添加你需要重新初始化你的插件

+0

你的意思是重新啓動開發人員工具。它在刷新開發人員工具之後起作用。但仍然沒有拖累。 –