我使用jquery ui标签并在标签内部使用代码调用jquery live函数
现在在1.4.2中我没有打电话给
$('.show_comment').die('click');
但在jquery 1.4.4中我必须调用,因为“实时”函数在重新访问选项卡时被触发两次(n次访问选项卡n次1次)
在jquery 1.4.2中它只被触发一次......
因为我有很长的代码我必须添加许多“死亡陈述”
其他任何解决方法都没有添加模具调用
代码......
$('#tabs').tabs(
{
load: function(e, ui)
{
$('.show_comment').die('click');
if ($('#tabs-2').tabs('option','selected') == 0)
{
$('.show_comment').live('click' , function() {
console.log( $(this).text() );
/*
var p = $(this).parents().filter(':eq(6)');
var bar_cls = p.attr('class');
$("ol#update li." + bar_cls +" ol li").toggle('fast');
*/
/*$("ol#update li." + bar_cls +" ol li").children(".nli_comment").corner();*/
return false;
});
}
}
,
selected: 1,
fx:{height: 'toggle', duration: 'fast'},
spinner: '<em>Loading...</em>' ,
collapsible: true
});
任何帮助
感谢
答案 0 :(得分:0)
请改用.bind
。我认为您的标签内容是从ajax源加载的?如果是这样,那么tabsload
事件上的绑定将导致每次加载选项卡时附加新处理程序,因此您需要事先调用die()
使用.bind
表示附加到.show_comment
的点击处理程序会在您加载另一个标签时自然死亡,并且会在再次加载#tabs-2
时重新附加