动态创建的表行不能由jQuery定位吗?

时间:2013-07-21 09:47:06

标签: jquery-ui

我正在尝试使表行可拖动,然后connectToSortable -able。

出于某种原因,当我将tbody ("#sem1")的ID放在选择器中时,它可以工作但显然会拖动整个表体及其所有行。 但是,当我在选择器中放置"#sem1 tr"时,网页似乎只是忽略了该代码,这意味着该表仍然正确显示,但没有任何内容可以拖动。

HTML:

<table class = "sem">                                   
    <thead>
        <th class = "header1">header</th>
        <th class = "header2">header</th>
        <tr>
            <td class = "static1">static1</td>
            <td class = "static2">static2</td>
        </tr>
    </thead>
    <tbody id = "sem1"> 
    </tbody>
</table>

通过一些JavaScript表格行添加到sem1,就像这样。

JavaScript的:

首先填充pos0[0](数组):

for(var i in setPos[0]){
    setPos[0][i]=("<tr><td class = " + String(setClass[i])+ ">" + setPos[0][i].slice(2) + "</td><td class = 'someClass'>"+setThis[i]+"</td></tr>");
}

然后将pos0[0][a]添加到sem1,如下所示:

for(var a in pos0[0]){
    document.getElementById("sem1").innerHTML += pos0[0][a];
}

当我尝试使行可拖动时,它只是不起作用。

jQuery的:

$("#sem1 tr").draggable()

只在选择器中放置tr也不起作用(我不介意整个文档中的所有表行都是可拖动的)

**我知道代码显示setPos[0] - 它是函数的一部分,对pos1,pos2做同样的事情......

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我的猜测是,在插入新$("#sem1 tr").draggable()的代码运行之前,您正在调用<tr>行,因此它不会看到您添加的行。 / p>

另外,您是否尝试过手动插入一些标记来检查可拖动代码是否实际按行进行?

如果你可以在jsfiddle中发布一个例子,那将有所帮助,所以我们可以和你合作。

最后,对于这种情况可能有点过头了,但是如果要在应用中构建html块,你是否考虑过使用JavaScript模板引擎?