2013-09-19 3 views
1
$(".btn_tab").click(function() { 
     var ids = new Array(); 
     $i=0; 
     $(this).ajaxSuccess(function(e) { 
      alert($i); 
      $(".tab-content .active table tbody tr td a.elusive-align-justify").each(function() { 
       $url = $(this).attr('href'); 
       //console.log($url); 

       var divided = $url.split("/"); 
       var id = divided[2]; 

       //console.log(id); 
       ids.push(id); 
      }); 
       console.log(ids); 

       $i++; 
     }); 
  • В первой вкладке я получаю предупреждение 0,
  • во второй боевой готовности 0, оповещение 1,
  • в третьем извещении 0, оповещение 1, оповещение 2, и так далее.

Правильным должен быть всегда начеку 0Скопления ajaxSuccess

Я думаю, что проблема связана с прослушивателя событий, потому что я только сделать один запрос XHR для каждого щелчка.

Если я использую this.removeEventListener(e);, я получаю сообщение об ошибке, и все работает нормально. return false, return или this.removeEventListener('click', e, false); не работает.

Любая идея?

ответ

0

ajaxSuccess является прослушивателем событий, и вы привязываете новый к каждому клику. Переместите его за пределы обработчика кликов.

+0

Я ценю, если вы можете уточнить больше –

+0

Извините, я пишу на своем телефоне прямо сейчас, но я могу это сделать позже. У вас возникли проблемы с пониманием? – bfavaretto

+0

И где вы делаете фактический запрос Ajax? Похоже, вы должны использовать регулярное событие 'success', а не ajaxSuccess. – bfavaretto

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