2013-09-22 58 views
0

我有下一個代碼添加的元素:如何從一個Ajax響應

$(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>'s,您需要再次初始化新添加的一個。

+0

感謝Patrick! –