本帖最后由 flyaway0813 于 2012-12-05 03:40:19 编辑

解决方案 »

  1.   

    问题是!为什么 dialog那个对话框不会打开很多遍呢!!!!无论点击多少次button,每次都只有一个对话框!!!
      

  2.   

    给pop_menu_edit绑定事件放到外面来,你放到里面每click一次menu_button就给pop_menu_edit绑定一次,导致多次绑定,点击一次pop_menu_edit就会打开多个dialog了,要不就需要移除绑定的时间先
    $('.menu_button').click(function(){              // 外部click
        var parent = $(this).parent().attr('id');
                    // 此处省略了显示pop_menu的代码
                    
                $(".pop_menu_edit").unbind('click').click(function(){     // 内部click!
                    $('<p>').text(parent).appendTo(edit_div);
                    edit_div.dialog({show: "slow"});
        });
    }); 
      

  3.   

    jquery有一个once方法是绑定一次事件的
      

  4.   


    内部click方法改为
    $(".pop_menu_edit")[0].onclick = function(){
        $('<p>').text(parent).appendTo(edit_div);
        edit_div.dialog({show: "slow"});
    });
    其实你完全可以不用每次都注册事件,把pop_menu_edit的click事件定义在外面,
    在edit_div前添加代码如下:<input type="hidden" id="parent"/><p rel="parent"><p>js改成如下$('.menu_button').click(function(){
        var parent = $(this).parent().attr('id');
        $(".pop_menu_edit #parent").val(parent);
        // 此处省略了显示pop_menu的代码
    });
                    
    $(".pop_menu_edit").click(function(){
       $("p[rel=parent]").html($("#parent").val());
       edit_div.dialog({show: "slow"});
    });
      

  5.   

    在你不想触发的事件用event.preventDefault()试试