2013-03-13 2 views
0

У меня есть проблема с JQuery (AJAX), у меня есть эта функция:JQuery Ajax двойной вызов

page: function(p, cont) { 

    cont = typeof cont !== 'undefined' ? cont : this; 

    $.ajax({ 
     url: p, 
     timeout: 10000, 
     complete: function() {...} 
    }).done(function(html) { 
     $(cont).append(html); 
    }); 

} 

Когда я использую эту функцию в HTML (OnClick), каждый раз, когда я нажимаю на кнопку запроса повторы, как предотвратить это? Я хочу загружать контент только один раз.

Примечание: эта функция использовалась несколькими кнопками не только для одного.

Спасибо!

+0

Как вы привязки обработчика щелчка? Вы можете попробовать привязать его к '$ .one' – forivall

+0

Вместо того, чтобы делать html (onClick), почему бы вам не использовать встроенную функцию jQuery для распознавания при нажатии кнопок? – m1ket

+0

'cont' никогда не будет неопределенным в этом контексте, если вы явно не передадите переменную как неопределенную. –

ответ

-1

Вы могли бы попытаться использовать переменную на глобальном масштабе как «блокиратор», как:

var blocker = false; 

page: function(p, cont) { 
    if(!blocker){ 
     blocker = true; 
    }else{ 
     return; 
    } 
    cont = typeof cont !== 'undefined' ? cont : this; 
    $.ajax({ 
     url: p, 
     timeout:10000, 
     complete: function() { ... } 
     }).done(function(html) { 
      $(cont).append(html); 
    }); 

} 
Смежные вопросы