jquery
  • dom
  • 2012-09-13 112 views 0 likes 
    0

    我试图添加和删除点击div。 我成功添加它,但无法找出删除部分。点击附加和删除元素

    • +问题:DOM中的.remove()元素是否完全删除?

    HTML:

    <center> 
    <a href='#' id='gogo'>Add</a> 
    <div id='sexy'></div> 
    </center> 
    

    的jQuery:

    var extra="<div class='bass'><a href='#' class='gaga'>Remove</a></div>"; 
    
    $('#gogo').on('click', function(){ 
    
    
        $('#sexy').append(extra); 
    
    
    
    }); 
    
    $('.gaga').on('click', function(){ 
    
    
        $(this).parent().remove(); 
    
    
    
    }); 
    

    的jsfiddle: http://jsfiddle.net/Vmhe2/1/

    回答

    1

    是的,.remove()会从DOM树中完全删除元素。


    但是,您删除的代码应该是这样的:

    $('#sexy').on('click', '.gaga', function(e){ 
        e.preventDefault(); // as .gaga is anchor, so use preventDefault() 
             // to stop default page load of browser 
        $(this).parent().remove(); 
    }); 
    

    至于要追加.gaga动态,所以你需要委托事件处理,并且可以使用.on()方法做到这一点。

    Working sample


    .on()为代表事件(又名生活)语法是:

    $(StatciParent).on(eventName, target, handlerFunction); 
    

    其中,StaticParent指给target元素的父元素,它不是动态的,target是你需要绑定事件的元素。

    1

    是,T他的元素完全从DOM中删除。

    1

    当您注册事件处理程序时,此时DOM元素必须存在。如果你想让它动态绑定,使用委托():http://api.jquery.com/delegate/

    2

    这应该有助于

    $('#gogo').on('click', function(){ 
    
        $('#sexy').append(extra); 
    
        $('.gaga').on('click', function() { 
         $(this).parent().remove(); 
        }); 
    
    }); 
    

    我提出删除功能附加额外的div

    1

    http://jsfiddle.net/Vmhe2/49/

    试试这个:)之后

    相关问题