我目前正在使用 datatables.js 在WordPress网站上提供目录:example.com/directory
。
我添加了使用查询字符串过滤目录的功能,因此我可以创建在加载时显示目录子集的链接:example.com/directory/?search=query
。
以下是我在目录页面上使用的代码:
<script charset="utf-8" type="text/javascript">// <![CDATA[
jQuery(document).ready(function() {
jQuery.urlParam = function(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results)
{
return '';
}
return unescape(results[1]) || '';
}
jQuery('#directory').dataTable( {
"sPaginationType": "full_numbers",
"aLengthMenu": [[15, 30, -1], [15, 30, "All"]],
"iDisplayLength" : 15,
"oSearch": {"sSearch": jQuery.urlParam('search')}
}).rowGrouping()
jQuery('div.dataTables_filter input').focus();
});
// ]]></script>
对于包含目录子集的页面:example.com/departmentpage
。
<script charset="utf-8" type="text/javascript">// <![CDATA[
jQuery(document).ready(function() {
jQuery("#result").load("http://example.com/directory/?search=departmentname #directory > *");
});
// ]]></script>
<div id="result"></div>
.load
函数有效,但它会拉入整个原始表,而不是通常在主目录页面上查找的表。我的假设是.load
函数在脚本运行之前拉#directory
。
有没有办法让.load
等到包含页面上的脚本在将内容拉入包含页面之前运行?
答案 0 :(得分:0)
您正在使用#directory > *
提取.load()
。如果您提交的HTML所需的脚本未包含在.load()
语句中,则不会发生任何事情。你只会在原始HTML中拉。
您需要包含脚本,或者通过其他方法提取HTML并重新运行将表格转换为所需效果所需的JavaScript。
在初次检查您使用的插件时,我建议您尝试使用sAjaxSource
方法获取数据。