jquery现场问题

时间:2011-05-10 10:28:27

标签: javascript jquery

伙计们,我在这里遇到了问题,任何一个都可以帮忙吗?^^

在这个程序中,我试图使用live(for ajax issue)

<div id="rpt1" class="test"></div>
<div id="rpt2" class="test"></div>
<div id="rpt3" class="test"></div>
<div id="rpt4" class="test"></div>
<div id="rpt5" class="test"></div>

$('.test').live('click',test2);

之后我试图解除绑定或死掉其中一个处理程序

$('#rpt1').die('click');

如果我使用

 $('.test').die('click');

我会死所有.....这是我想做的最后一件事。 我但事件仍然有效。 我想知道如何解决这个..尝试了几个小时edi .. thx ^^

我可以把实时代码放在这里。 我有很多这些div

{$ lang.report}
  • {$ lang.re.spam}
  • 然后住在这里    $( “报告”)。住( '点击',函数(){

                                if($(this).next(".report_type").is(':visible')){
                                        $(this).next(".report_type").hide();
                                }else{
                                        $(this).next(".report_type").show()
                                }
                                        return false;
                                });
    

    function report_comment(category,comment_id,report_type)            { 等等等等等等             $( '#报告' + COMMENT_ID).die( '点击'); }

    4 个答案:

    答案 0 :(得分:1)

    您需要将回调函数作为第二个参数传递 $('.test').die('click',test2);

    请参阅:http://api.jquery.com/die/#die2

    修改

    我误解了你的问题。

    尝试此$('#rpt1').removeClass('test');从其中一个div中删除实时事件

    示例:http://jsfiddle.net/herostwist/TEZhb/

    答案 1 :(得分:0)

    尝试将处理程序传递给死亡

      

    $('.test').die('click',test2);

    答案 2 :(得分:0)

    试试这个:

         $('.test').live('click',function(){
            var $id = $("#" + $(this).attr('id'));
    
            if($id.next().is(':visible')){
                    $id.die('click');
                    $(id).next().hide();
            } else { 
                    $id.die('click');
                    $id.next().show();
            }
         });
    

    答案 3 :(得分:0)

    我认为你错过了来自.die()

    的非常重要的信息和平
      

    注意:直到jQuery 1.4.4,为了使.die()正常运行,与它一起使用的选择器必须与最初与.live()一起使用的选择器完全匹配。

    他们给出点击和骰子的每个例子都应用于同一个选择器