2017-02-14 73 views
0

我有以下代码。它执行以下操作:jQuery点击无法在按钮里面contenteditable div

当在一个div上悬停时,一个按钮被附加到div上。在点击,我试图删除父div。但按钮上的点击事件不会触发。我怀疑这是由于父母div是可以满足的。 是否有触发点击按钮?

$(document).ready(function() { 
 

 
    jQuery(document).on("mouseover", ".mfx-container", function() { 
 
    jQuery(".mfx-container").css("outline", "none"); 
 
    jQuery(this).css("outline", "2px solid #DDE5EC"); 
 
    jQuery(".editor-hover-buttons").remove(); 
 
    jQuery(this).append('<button class="editor-hover-buttons delete-block-button" type="reset">Delete</button>'); 
 

 
    }) 
 
    
 
    jQuery(document).on("click",".delete-block-button",function(){ 
 
      alert("delete"); 
 
      jQuery(this).parent(".mfx-container").remove(); 
 
     }) 
 

 

 
})
.mfx-container { 
 
    min-height: 100px; 
 
    position: relative; 
 
} 
 
.delete-block-button { 
 
    position: absolute; 
 
    top: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div contenteditable="true"> 
 
    <div class="container-fluid mf-wpt1-banner mfx-container"> 
 
    <span class="strong"> Introducing Marketfox!</span> You can now increase conversions on any web page 
 
    </div> 
 
    <div class="container mfx-container"> 
 
    <h2 class="text-center mt30 mb30">Lorem ipsum dolor sit amet</h2> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus bibendum magna turpis. Aliquam ultricies interdum risus, ut interdum justo imperdiet eget. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 

 
    </div> 
 

 
    <div class="container mfx-container"> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    </div> 
 
</div>

+0

它正常工作对我来说:https://jsfiddle.net/Laeg2n82/ – Armin

回答

3

这是因为你的功能增添了不少按钮。我添加了一个变量来制作一个按钮。请尝试

$(document).ready(function() { 
 
    var active =0; 
 
    jQuery(document).on("mouseover", ".mfx-container", function(e) { 
 
    if(active == 0){ 
 
    active =1; 
 
    jQuery(".mfx-container").css("outline", "none"); 
 
    jQuery(this).css("outline", "2px solid #DDE5EC"); 
 
    jQuery(".editor-hover-buttons").remove(); 
 
    jQuery(this).append('<button class="editor-hover-buttons delete-block-button" type="reset">Delete</button>'); 
 
} 
 
    }) 
 
    jQuery(document).on("mouseout", ".mfx-container", function(e) { 
 
    if(active == 1){ 
 
     active =0; 
 
     } 
 
    }) 
 
    
 
    jQuery(document).on("click",".delete-block-button",function(){ 
 
      alert("delete"); 
 
      jQuery(this).parent(".mfx-container").remove(); 
 
     }) 
 

 

 
})
.mfx-container { 
 
    min-height: 100px; 
 
    position: relative; 
 
} 
 
.delete-block-button { 
 
    position: absolute; 
 
    top: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div contenteditable="true"> 
 
    <div class="container-fluid mf-wpt1-banner mfx-container"> 
 
    <span class="strong"> Introducing Marketfox!</span> You can now increase conversions on any web page 
 
    </div> 
 
    <div class="container mfx-container"> 
 
    <h2 class="text-center mt30 mb30">Lorem ipsum dolor sit amet</h2> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus bibendum magna turpis. Aliquam ultricies interdum risus, ut interdum justo imperdiet eget. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 
    <div class="col-sm-6 lh2 mb30"> 
 
     Vivamus in placerat odio. Mauris nec augue vitae est facilisis tincidunt. Donec quis commodo mi, quis porta magna. Sed laoreet id lectus ac interdum. 
 
    </div> 
 

 
    </div> 
 

 
    <div class="container mfx-container"> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    <div class="col-sm-4 p30"> 
 
     <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150"> 
 
    </div> 
 
    </div> 
 
</div>

+1

我敢肯定OP要为每个元素 – Armin

+0

无按键不灵删除按钮。他想要删除应注意的div –

+0

他说:“但按钮上的点击事件没有触发。” –