动态 JQuery UI 中的表排序器不起作用
Tablesorter in dynamic JQuery UI doesn't work
这是我在这个网站上的第一篇文章,我发誓我已经搜索了我问题的答案。也许我在我读过的主题中错过了一些东西。(对不起我的英语,我是法国人。
当用户执行 clic 时,我创建一个对话框,然后用 ajax 结果(具有特定内容的表)填充此对话框。这是我的代码:
包括
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script type="text/javascript" src="../tablesorter/jquery.tablesorter.js"></script>
我的 js 函数
function click_like(e, idProjet) {
var evt = e ? e:window.event;
if (evt.stopPropagation)
evt.stopPropagation();
if (evt.cancelBubble!=null)
evt.cancelBubble = true;
if(document.getElementById("dialog") != null) {
$('#dialog').remove();
}
$('#projets').append("<div id='dialog' style='display: none;'></div>");
$( "#dialog" ).dialog(
{
title: 'Projet '+idProjet,
autoOpen: false,
height: 400,
width: 400,
close: function(event, ui) {
$(this).dialog('destroy').remove();
$('#dialog').remove();
}
});
$( "#dialog" ).load('./../js/js_get_etudiants_interesses.php?idProjet='+idProjet).dialog('open');
}
Php 文件
<?php
//php things
?>
<p> Les étudiants intéressés sont: </p>
<table id="tous_les_etudiants" class="tablesorter">
<thead>
<tr>
<td> Nom </td>
<td> Prénom </td>
<td> Spécialité </td>
<td> Email </td>
</tr>
</thead>
<tbody>
<?php
foreach($etudiants AS $etudiant) {
echo '<tr>';
echo '<td>'.$etudiant->get_NOM().'</td>';
echo '<td>'.$etudiant->get_PRENOM().'</td>';
echo '<td>'.$etudiant->get_SPECIALITE().'</td>';
echo '<td>'.$etudiant->get_EMAIL().'</td>';
echo '</tr>';
}
?>
</tbody>
</table>
<script>
$("#tous_les_etudiants").tablesorter();
</script>
问题是我没有收到任何错误,表格不可排序,但是样式有效。在其他表(不是按需生成的)上,它工作正常。我已经看到了这个线程,但它没有答案为什么jquery...在这里,但我很确定我在创建div 后进行了表排序器调用。我试图在调用的 php 文件中进行调用,也是在我的 js 函数结束时。也许你可以指出我为什么愚蠢,因为我确信这是愚蠢的。感谢您的阅读,如果答案已经存在,请道歉。
在
对话框窗口可见后,需要初始化表排序器(演示):
.HTML
<button id="opener">Open Dialog</button>
<div id="dialog" title="Basic dialog">
<table class="tablesorter">
<thead>
...
</thead>
<tbody>
...
</tbody>
</table>
</div>
脚本
$(function () {
$("#opener").click(function () {
$("#dialog").dialog("open");
});
$("#dialog").dialog({
autoOpen: false,
open: function (event, ui) {
$('.ui-dialog table').tablesorter({
theme: 'blue'
});
}
});
});
更新:如果您计划将信息加载到对话框中,则此方法(dialog().load().dialog('open');
)不正确,因为未考虑ajax的异步性质。请改用load()
函数的回调方法:
$( "#dialog" ).load('./../js/js_get_etudiants_interesses.php?idProjet='+idProjet, function(){
$( "#dialog" ).dialog('open');
});
相关文章:
- jquery中DataTables插件中的排序不起作用
- j查询排序不起作用
- 为什么这种 jquery 驱动的表排序不起作用
- jQuery DataTables排序不起作用
- populate中的Mongoose排序不起作用
- 使用J-query数据表,美国日期格式的自定义排序不起作用
- jQuery 表排序器排序不起作用
- 从 AJAX 调用的 PHP 对数组进行排序不起作用
- Jquery UI 可排序不起作用
- 基于CSS类和文本对元素进行排序不起作用
- 使用嵌套json时,ngTable中的排序不起作用
- js文档排序不起作用
- jQueryDataTables-当日期也是一个链接时,排序不起作用
- angularJS:动态标题排序不起作用
- ng表排序不起作用
- 淘汰排序不起作用
- SlickGrid:重新排序后的排序不起作用
- 数据表排序不起作用
- 数组排序不起作用
- jqgrid:动态添加记录后排序不起作用