2013-09-22 2 views
0

У меня есть следующий код:как получить элемент, добавленный из АЯКС ответа

$(document).ready(function(){  
$('#dl-cat').mouseenter(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "../control/Controlador.php", 
     data: {lang: $('html').attr('lang'), cat: $(this).text(), prov: "none"}, 
     success: function(resp) { 
      $(".og-grid").html(resp); 
     } 
    });  
}); 

$(".og-grid li").on("mouseenter", function(){ 
    console.log("it exists"); 
}); 

});

Где класс «og-grid» является тегом «ul», и после ответа ajax я помещаю некоторый код html как теги «li», но когда я программирую событие, такое как «mouseenter», на новый добавленный код. не показывает мне что-нибудь, как если бы оно не существует

+0

вам может понадобиться функция jQuery [.on] (http://api.jquery.com/on) для делегирования события динамическому контенту –

ответ

0

Вы должны использовать модель делегирования события .on() здесь, так как li элементов являются динамическими

$(".og-grid").on("mouseenter", 'li', function(){ 
    console.log("it exists"); 
}); 
0

Вы должны использовать селекторы событий. Перепишите свой второй прослушиватель событий следующим образом:

$(".og-grid").on("mouseenter", "li", function(){ 
    console.log("it exists"); 
}); 
0

Необходимо инициализировать событие mouseenter. Допустим, у меня есть <ul><ul>. После 1 ajax-вызова у меня есть <ul><li><ul>, в этот момент вам нужно инициализировать событие на <li>. Если у вас есть 2 <li>, вам нужно снова инициализировать новый добавленный.

+0

Спасибо Патрику! –

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