jQuery sortable()没有触发

时间:2015-03-24 04:35:55

标签: jquery html jquery-ui

我试图让表中的行可以排序。当我做一个玩具示例时,它工作正常,所以代码似乎很好。我的猜测是,在实际页面的更复杂的HTML中,我没有将我的jQuery函数连接到表体。这就是我的DOM的样子。它是我试图排序的<tbody>

enter image description here

body元素的底部,我有以下几行:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script>
    $('#resources_table tbody').sortable();
    $('#resources_table tbody').disableSelection();
</script>

如果这实际上是我做错的话,我需要做什么才能将JS连接到HTML元素?谢谢!

编辑:我意识到注意表的HTML是通过对服务器的AJAX调用动态生成的也很重要。当该调用返回时,通过使用id&#34; upload_res&#34;更新div的innerHTML来创建表。使用服务器返回的字符串。

1 个答案:

答案 0 :(得分:0)

这不起火的原因是由于比赛条件。使用在 sortable()disableSelection()函数调用发生后返回的服务器的异步调用结果加载表。要解决它,我需要移动这两行:

$('#resources_table tbody').sortable();
$('#resources_table tbody').disableSelection();

进入返回XMLHttpRequest后运行的AJAX代码块。这样,我可以保证在函数调用发生之前已经加载了表。