我目前在页面上有类似的东西(http://jsfiddle.net/my7bM/),只要它是使用php生成的,但是在另一个页面上有相同的功能发生,只在该页面上内容是动态生成的使用Ajax并且脚本不起作用(JS newbie因此最感谢任何帮助)
我已经尝试了这个但是它仍然不起作用
$('.read-more').on("click", function (e) {
e.preventDefault();
$(this).closest('.member-content').next('.contentDiv').find('.myContent').show();
$(this).hide();
return false;
);
$('.close-more').on("click", function (e) {
e.preventDefault();
$(this).closest('.contentDiv').prev('.member-content').find('.read-more').show();
$(this).closest('.myContent').hide();
return false;
});
任何帮助都会很棒,谢谢!
答案 0 :(得分:6)
您需要event delegation来处理动态添加DOM的事件。
事件委托允许我们将单个事件监听器附加到父元素,该元素将为匹配选择器的所有子项触发,无论这些子项现在是存在还是将来添加。
试试这个:
$(document).on("click",'.close-more', function (e) {
e.preventDefault();
$(this).closest('.contentDiv').prev('.member-content').find('.read-more').show();
$(this).closest('.myContent').hide();
return false;
});
也更喜欢使用最接近的父DOM(保持静态)而不是$(document)