2013-04-28 68 views
0

下面我有這個jQuery代碼:點擊動態加載div來展現另一個DIV

$.each(data.direct, function (filelist, direc) { 
       $('#magazines-list').append ($('<li>').append ('<p>'+ direc.slice(47) + '</p>')); 
      }); 

那麼這

$("body").delegate("#magazines-list li p",'click', function() { 
    $('#magazine-show').fadeIn(500); 
    $('#magazine-show').css({width: $(window).width(), height: $(window).height()}); 
    $('#magazine-show').append('<p class="magazine-show-caption">' + $(this).text() + '</p>'); 
}); 

的問題是,當我點擊了「#magazines-list li p」,該方法被觸發兩次,因此我得到兩次標題。

回答

0

你需要這樣做:代替delegate

  • 這裏

    $("#magazines-list").on("click","li > p", function() { 
        $('#magazine-show').fadeIn(500); 
        $('#magazine-show').css({width: $(window).width(), height: $(window).height()}); 
        $('#magazine-show').append('<p class="magazine-show-caption">' + $(this).text() + '</p>'); 
    }); 
    
    • 使用on$("#magazines-list")是父包裝。
    • 單擊父包裝中的任何p時,將調用上述函數。