Tim*_*mmy 0 ajax jquery user-interface
在前一个ajax事件完成之前阻塞的好方法是什么?
我跟着你如何在Stackoverflow中制作一个投票上下按钮?但如果我足够快地点击按钮,它会向服务器发送多个(也许是不一致的)事件.如何制作它以便用户在另一次点击注册之前等待?
编辑:我也不希望它全局阻止 - 只是为了那个按钮/项目.我需要维护哈希吗?
好吧,因为我写了,我想我也可以回答这个问题;)
执行此操作的"常见"方法是通过设置一个指示符变量来表示请求正在进行中,并在所有操作发生之前/之后相应地更新.对于我在该问题中的代码,您可以按如下方式对其进行编辑:
在click功能之外,添加以下内容:
var voting = false; // not initially voting
Run Code Online (Sandbox Code Playgroud)
在click函数内部,在最顶部,添加:
if(voting) return false; // if voting, return
voting = true; // if not, set voting to true
Run Code Online (Sandbox Code Playgroud)
在两个帖子回调中,添加以下内容:
voting = false; // done voting, set back to false
Run Code Online (Sandbox Code Playgroud)
如果您想在每个问题/答案/项目的基础上维护一个指标,您可以这样做:
首先,替换此代码:
var id = $(this).parents('div.answer').attr('id').split('_')[1];
Run Code Online (Sandbox Code Playgroud)
有了这个:
var parent = $(this).parents('div.answer'); // get the parent div
if(parent.data('voting')) return false; // if voting, return
parent.data('voting', true); // if not, update the marker
var id = parent.attr('id').split('_')[1]; // get the id
Run Code Online (Sandbox Code Playgroud)
然后在两个帖子回调中,添加:
parent.data('voting', false); // done voting, set back to false
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们将使用jQuery的数据来存储包含DIV内的特定问题/答案/项目的投票状态,并在发生任何事情时相应地更新它.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
4553 次 |
| 最近记录: |