@Shevalye

Обрабатывается несколько рас запрос ajax?

Есть динамически созданные классы:

<div class='menuline' data1=''></div>
<div class='menuline' data1=''></div>
<div class='menuline' data1=''></div>

и т.д.

Мне нужно при нажатии на каждый menuline обработать запрос:

$(document).delegate( ".menuline", "click", function() {
    $.ajax({
        url: 'info.php',        
        method: 'get',           
        dataType: 'html',          
        data: { data1: $(this).attr('data1')},    
        success: function(data){ 
        $('#menuserios').empty();   
        $('#menuserios').append(data);
        }
    }); 

});

При первом клике на элемент "menuline" мне выдает результат. При втором клике дважды результат, при третьем - четыре раза и т.д. в геометрической прогрессии.

Подскажите пожалуйста, можно ли как ни будь, при каждом клике обнулять функцию? Чтобы при каждом нажатии на "menuline" она срабатывала лишь по одному разу.
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 2
@My1Name
Оберните участок кода (в какой-нибудь ID). Например:
<div id="myID">
<div class='menuline' data1=''></div>
<div class='menuline' data1=''></div>
<div class='menuline' data1=''></div>
</div>

Добавьте правильно обработчик событий:
$("#myID").click(function (event){
  if(event.target.closest('.menuline')){
 $.ajax({
.....
Ответ написан
delphinpro
@delphinpro
frontend developer
В приведенном коде проблемы нет. Сайд-эффект возникает где-то в другом месте.
Единственное, что могу предположить – в ответе info.php содержится такой же скрипт. А так как jquery под капотом выполняет все скрипты, если они загрузились с разметкой аяксом, то там и происходит повторное навешивание событий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы