2015-06-12 3 views
0

У меня возникают некоторые ссылки с классом .reg_required, который делает все ссылки отображать всплывающие окна, когда пользователь вошел в систему.отменить preventDefault после АЯКС успеха

$('.reg_required').click(function(e) { 
    e.preventDefault(); 
    $('#login_popup').dialog('open'); 
}); 

после успешного входа в систему AJAX я удалить все классы из ссылок, но поведение всплывающего окна входа остается.

$('.reg_required').removeClass("reg_required") 

Как я могу связать ссылки с указанным URL еще раз после успеха входа?

+0

Имейте в виду, что пользователи могут легко манипулировать DOM и/или отключать JavaScript в своих браузерах. В зависимости от вашего контекста и необходимого уровня безопасности вы можете рассмотреть дополнительное серверное решение. – showdev

ответ

2

Использование делегации с on()

$(document).on('click', '.reg_required', function(e) { 
    e.preventDefault(); 
    $('#login_popup').dialog('open'); 
}); 

Я думаю, что происходит, когда вы переплетены с .click() обработчиками все еще остаются приложенными после удаления класса. Это связано с тем, что обработчик привязан к тому, что было в $('.reg_required') и далее. Однако обработчик on() будет прикреплен только к текущий и будущий .reg_required.

+0

спасибо AmmarCSE –

+0

@ пользователь3523538, приветствуется. Надеюсь, что это помогло – AmmarCSE

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