我的页面上有三个 div 框在每个 div 框中,我按下一个删除按钮,可以从代码中删除 div 框。同一事件中的 ajax 请求会根据按下的 div 框向服务器发送一个唯一编号。为了防止在删除按钮上调用多个单击事件,我使用了 one() 事件。但是在我快速单击按钮的罕见事件中,它会触发该事件两次,并且我看到数据库收到重复的数字。我认为 one() 可以防止这种情况发生。我的 jquery 代码可能有什么问题导致它触发两次?我的代码如下。
HTML 中的示例按钮
<input id="delete_post_3" type="button" value="X">
jQuery 代码
$('#delete_post_1').one('click', function() {
var session_user_id = <? php echo $session_user_id; ?> ;
var number = 1;
$.post('ajax_delete_post.php', {
user_id: session_user_id,
number: number
}, function() {
$('#post_1').remove();
});
});
$('#delete_post_2').one('click', function() {
var session_user_id = <? php echo $session_user_id; ?> ;
var number = 2;
$.post('ajax_delete_post.php', {
user_id: session_user_id,
number: number
}, function() {
$('#post_2').remove();
});
});
$('#delete_post_3').one('click', function() {
var session_user_id = <? php echo $session_user_id; ?> ;
var number = 3;
$.post('ajax_delete_post.php', {
user_id: session_user_id,
number: number
}, function() {
$('#post_3').remove();
});
});
更新:根据请求,我将对整个页面的代码进行简要说明。
<script>
//when document is ready, loads jquery code that allows any div boxes that currently
//exist on the page to have a click event that will delete the box. this is the same
//code seen above in my example.
</script>
<form>
//form to fill out info
</form>
<script>
//ajax post sent when form button clicked
$.post('ajax_file.php', {data: data}, function(data){
//in here div box is created
<script>
//duplicated jquery code from top of page. without it the div box delete button does
//not work
</script>
});
</script>