我目前有一个动态的数字,这些数字是用foreach()
循环生成的:
<div id="<?php echo $data['id']; ?>" data-role="collapsible" data-theme="a">
<h1 style="white-space: normal"><?php echo $data['text']; ?></h1>
<center>
<p><?php echo $data['text']; ?></p>
</center>
</div>
我想要的是,当可折叠的<div>
打开时,将AJAX POST请求调度到另一个具有参数$data['id']
的资源。
我尝试使用.click
方法,但无法使其适用于<div>
s的动态列表。我觉得等待动画完成(以确保页面仍然响应)的方法是最好的方法。
有人能帮忙吗?
对于动态生成的内容,我建议您使用.on()
方法。以以下代码为例:
$('#container').on('click', 'div', function() {
var id = $(this).attr('id');
$(this).animate({
your animation
}, 5000, function() {
$.ajax({
url: "another_resource.php",
type: "POST",
data: {
id: id
}, //data to be sent
dataType: "text", //return data type
async: false,
success: function(data) {
console.log(data);
},
error: function(data) {
console.log(data);
}
});
});
}
第一个参数是事件(可以用空格分隔多个事件),而第二个参数可以是目标元素或要执行的函数。在这种情况下,最后一个当然是要执行的函数。
ajax将根据请求在动画完成时执行。