2013-04-09 2 views
0

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

Это то, что я пытался, но безуспешно и без ошибок:

 $('.excelDL').live('click', function(e){ 
      $.ajax({ 
       url: 'exceldl.php', 
       data: $('#myForm').serialize(), 
       type: 'POST', 
       success: function(data){ 
        $('.xldl').html(data); 
        attach = $('.xldl a').attr("href"); 

        $('.xldl a').trigger('click'); 
       } 
      }); 
     }); 

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

Я ценю любые предложения.

Большое спасибо!

+0

Какой версии JQuery вы используете? Если вы используете jQuery 1.9, метод live был удален, и вы должны использовать 'on' –

+0

. После того, как '.live()' будет отсортирован ... Что делает строка 'attach = $ ('. Xldl a'), .attr ("href"); 'достигают? Вы знаете, что '$ ('. Xldl a'). Trigger ('click');' запускает все элементы .xldl a' на странице, а не только недавно добавленную? –

+0

Спасибо за ответ. Да, я знаю, что в '. Xldl' есть только один якорь. – AnchovyLegend

ответ

1

Использование "на" вместо "живого"

$(document).on('click','.excelDL',function(e){ 
     $.ajax({ 
      url: 'exceldl.php', 
      data: $('#myForm').serialize(), 
      type: 'POST', 
      success: function(data){ 
       $('.xldl').html(data); 
       attach = $('.xldl a').attr("href"); 

       $('.xldl a').trigger('click'); 
      } 
     }); 
    }); 

JQuery на документации: http://api.jquery.com/on/

JQuery жить осуждаются после 1,7

+0

Спасибо за ответ, однако, это не сработает. Событие никогда не запускается:/ – AnchovyLegend

+0

Причина, по которой я считаю, что это не работает, потому что excelDL является статическим элементом. Элементом, которому требуется событие 'on', является' xldl'. – AnchovyLegend

+0

Приведенный выше код выдает ошибку. Ошибочный '' 'нужно удалить, а аргументы не в порядке. Первая строка должна читать '$ (document) .on ('click', '.excelDL', function (e) {' –

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