我有一个带有新帖子的ajax请求,每个帖子都有一个切换按钮来显示和隐藏默认隐藏的元素。
下面的代码有效,但是插入的ajax数据只能在第一次(打开)而不是第二次(关闭)时使用
$(".voice_btn").live( 'click', function(){
$(this).toggleClass('active voice_btn');
$(this).closest('.element').children('.voice_box').toggle(300);
$('.tipsy').hide();
$(this).attr("title", ($(this).hasClass("active")?"Close":"Open") + " voicebox");
return false;
});
答案 0 :(得分:3)
如果从元素中删除voice_btn
类,它将不再触发click事件,因为它不再满足选择器。
变化
$(this).toggleClass('active voice_btn');
到
$(this).toggleClass('active');
答案 1 :(得分:2)
只更新第2行以仅切换活动类,因为在第一次运行代码后,删除了voice_btn类,并且您的实时函数不再附加到您的元素:
$(".voice_btn").live( 'click', function(){
$(this).toggleClass('active'); // <- notice the change in this line
$(this).closest('.element').children('.voice_box').toggle(300);
$('.tipsy').hide();
$(this).attr("title", ($(this).hasClass("active")?"Close":"Open") + " voicebox");
return false;
});