我试图让表中的行可以排序。当我做一个玩具示例时,它工作正常,所以代码似乎很好。我的猜测是,在实际页面的更复杂的HTML中,我没有将我的jQuery函数连接到表体。这就是我的DOM的样子。它是我试图排序的<tbody>
:
在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来创建表。使用服务器返回的字符串。
答案 0 :(得分:0)
这不起火的原因是由于比赛条件。使用在 sortable()
和disableSelection()
函数调用发生后返回的服务器的异步调用结果加载表。要解决它,我需要移动这两行:
$('#resources_table tbody').sortable();
$('#resources_table tbody').disableSelection();
进入返回XMLHttpRequest
后运行的AJAX代码块。这样,我可以保证在函数调用发生之前已经加载了表。