1.4.4中的jquery实时点击行为

时间:2011-01-24 11:01:26

标签: javascript jquery-ui jquery

我使用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
});

任何帮助

感谢

1 个答案:

答案 0 :(得分:0)

请改用.bind。我认为您的标签内容是从ajax源加载的?如果是这样,那么tabsload事件上的绑定将导致每次加载选项卡时附加新处理程序,因此您需要事先调用die()

使用.bind表示附加到.show_comment的点击处理程序会在您加载另一个标签时自然死亡,并且会在再次加载#tabs-2时重新附加