所以我有一个这样的列表页面:
//start loop
<div id ='row-prd-<number>'>
<strong>product Name</strong>
<a href='#' id='edit-prd-<number>'>Edit</a>
<a href='#' id='delete-prd-<number>'>Delete</a>
</div>
//end loop
在我的javascript中,我做了类似的事情:
$('#delete-prd-<number>').click()
{
//change style of the row to show its being deleted..
$('row-prd-<number>').addClass('deleting');
//make ajax call to delete
ajaxDeleteRecord(prd-<number>);
}
现在,这很好用。我担心的是,在较低的连接速度情况下,删除ajax调用需要几秒钟才能完成。我担心如果用户点击另一条记录的编辑或删除按钮会发生什么。所以我有三个问题:
1。我应该禁用页面上的所有点击事件,直到ajax调用返回? 对我来说,这似乎不是一个好选择 - 假设ajax调用错误...在这种情况下,用户现在处于他/她不能再点击页面中的任何内容的状态!
2。那怎么办呢? ......我有点迷失了该做什么。我想这是我遇到的三个问题中最重要的一个。
1。如果我必须禁用并重新启用页面上元素的点击(编辑/删除/新),是否有一种简单的方法可以做到这一点? ......只是好奇......
答案 0 :(得分:-1)
您的方案1将执行此操作以禁用所有其他事件。它也会很整洁。
您可以通过设置
让ajax调用同步而不是异步async:false
在电话中。
语法看起来像这样:
$.ajax({
url: 'your url',
global: false,
type: 'POST',
data: {},
async: false,
success: function() {},
error: function() {}
});