如何在用户点击后禁用可点击元素?

时间:2010-11-07 21:37:39

标签: javascript html

所以,如果你有一个喜欢的按钮,那么用户可以继续点击,最喜欢的东西将继续关闭和打开等等。

但是,似乎某种竞争条件是由于速度点击而发生的,事情开始变得有趣,一旦我刷新页面它们就会恢复正常。问题似乎更多的是在UI端而不是后端,但我无法调试,因为这给程序时间和竞争条件消失了。

我有SET NOCOUNT ON;在我的SQL过程中,万一你想知道。

因此,一旦用户点击“收藏”按钮,我应该采取哪些步骤来确保他们不会再次点击它,直到我们收到Ajax请求的回复?

我正在联系数据库,以便每次做或取消喜欢...是不是很糟糕? (这与我原来的问题没有关系)

1 个答案:

答案 0 :(得分:2)

的伪代码:

anchors = [DOMElement, DOMElement];

anchors.each(function() {

var clickable = true;

el.onclick = function() {
   if ( clickable ) {
       clickable = false;
       ajaxStuff({
         done: function(){ 
            clickable = true;
         }
       })
   }
});

基本上,在每个元素的上下文中调用一个函数,设置一个可点击的变量,如果clickable为true,则单击执行,然后将其设置为false,并将其设置回ajax完成。