我在下面有这个jQuery代码:
$.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>');
});
问题是,当我点击&{39; #magazines-list li p
&#39;时,该方法会被触发两次,因此我会获得两次标题。
答案 0 :(得分:0)
你需要这样做:
$("#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
代替delegate
$("#magazines-list")
是父包装。p
时,将调用上述函数。