JQuery - открепить / связать кнопку на AJAX

0

Я пытаюсь, когда я нажимаю кнопку, чтобы отвязать ее в ответе ajax в течение 2 секунд, а затем снова привязать ее.

$('#invite').click(function(){
       /*ajax*/
 });

И ответ ajax:

//ajax response
function(rep){
/*do stuff*/
$('#invite').unbind();
$(this).delay(2000).bind();
}

Но это не работает, кнопка остается неизменной навсегда, какие-то мысли?

Теги:

3 ответа

0
Лучший ответ

не связывай/отвязывай... это становится грязным... :)

попробуйте ввести переменную флага.

образец:

здесь

var flag = false;
$('#invite').click(function(){
     if (flag) return false; // if flag is true, don't run codes below this line
     flag = true;
       /*ajax*/
});

тогда,

//ajax response
function(rep){
/*do stuff*/
setTimeout(function(){flag=false},2000);
}

ну, что-то вроде этого... или просто измените переменную flag соответственно, если этот образец не сработал для вас... вы получаете идею...

  • 0
    спасибо, работает отлично!
0

Сделать это

function f1(){
             }

$('#invite').click(function(){
   f1();
});

$( "#invite" ).unbind( "click");
$(this).delay(2000).bind("click",f1);
0

Когда вы отвязываете какую-либо вещь от элемента, она не хранит информацию, поэтому, когда вы привязываете ее снова, там нечего связывать.

Если вы хотите связать его снова, просто сохраните функциональность в функции.

function x(){
 // any thing
  $('#invite').click(function(){
   /*ajax*/
  });
} 

для привязки

$('#invite').bind(x);

для развязывания

$('#invite').unbind();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню