[英]What is jQuery's equivalent to Ajax.Request, along with onSuccess and onComplete?
[英]How to initialize a jquery function onSuccess of ajax request?
我想在ajax请求完成并成功获得响应时初始化一个jQuery函数。 因为我正在尝试使用ajax响应获取表并使用数据表jquery插件为网格将其排序为网格
该函数以这种方式初始化
$(document).ready(function() {
$('#data_grid').dataTable();
} );
Ajax响应成功时将触发的功能
function showgValid()
{
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
{document.getElementById('loadingImg').style.display='none';
data =xmlHttp.responseText;
document.getElementById("genPay").innerHTML=data;
}
}
成功执行ajax响应后,genPay div的innerHTML将成为responsetext,该响应文本将是一个ID为data_table的表。
ajax请求将被发送并从以下文件获取:
<?
require_once '../config.php';
$db = $_GET['db'];
$table = $_GET['table'];
$_SESSION['table']=$table;
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css" title="currentStyle">
@import "demo_page.css";
@import "demo_table.css";
</style>
<script type="text/javascript" language="javascript" src="jquery.js"></script>
<script type="text/javascript" language="javascript" src="jquery.dataTables.js"></script>
<script language ="javascript" src="js/abtAjax.js" type="text/javascript"></script>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#data_grid').dataTable();
} );
</script>
</head>
<body id="dt_example">
<div id="container">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="data_grid">
<thead><?
if ( $line == 0 )
{
?>
<tr>
<?php
$sql=mysql_query("show columns from $table");
while($res = mysql_fetch_row($sql))
{
echo "<th bgcolor='".( ( $line % 2 ) ==0 ? '#efefef' : '#ffffff' )."'>$res[0]</td>";
}
?>
</tr>
<?
}
$line++;
?>
</thead>
<tbody>
<?php
$result = mysql_query( "select * from $table" );
$num_rows = mysql_num_rows($result);
while ($get_info = mysql_fetch_object($result)){
print "<tr>";
foreach ($get_info as $field)
print "<td>$field</td>";
print "</tr>";
}
?>
</tbody>
<?
print "</table>";
?>
<div class="spacer"></div>
</div>
</body>
</html>
问题在于没有达到电网的期望。 我认为该功能不是在ajax请求成功时初始化的。 请纠正我摆脱这个问题
$(document).ready()
在您的Ajax调用后不会触发。 仅在首次加载页面时触发。 如果你想要$('#data_grid').dataTable();
在您的ajax调用之后被调用,然后只需从ajax调用的成功处理程序中调用它即可。
function showgValid()
{
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
{
document.getElementById('loadingImg').style.display='none';
data =xmlHttp.responseText;
document.getElementById("genPay").innerHTML=data;
// ADD THIS LINE to your ajax success handler
$('#data_grid').dataTable();
}
}
我相信这就是您要寻找的:
$.ajax({
url: "test.html",
context: document.body,
success: function(){
$(this).addClass("done");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.