我有一個父div與編號test-container
和這裏面是子類icon-btn
。元素點擊vs文檔點擊首選項
當我點擊parent-div中的任何位置時,新的child-div元素被添加到位於click處的parent-div。
問題是當我點擊child-div元素parent-div事件先觸發然後觸發child-div事件。我希望孩子事件先發射。
JS:
$('#test-container').on('click', function(e) {
alert('clicked');
var parentOffset = $(this).offset();
var relX = e.pageY - parentOffset.top;
var relY = e.pageX - parentOffset.left;
$(this).append('<div class="icon-btn" style="top: ' + relX + 'px; left: ' + relY + 'px; display: block; position: absolute; border-radius: 3px; border: 1px solid #ffffff; overflow: visible; box-shadow: 0 0 2px #000; z-index: 16; width: 50px; height: 50px; padding: 15px 14px; color: #fff; cursor: pointer;" id="icon-btn-1"></div>')
});;
$(document).ready(function() {
$(document).on('click', '.icon-btn', function() {
alert('clicked sub div');
});
});
HTML:
<div style="width: 300px; position: relative;">
<img src="http://www.flowermeaning.com/flower-pics/Daffodil-Meaning.jpg" class="img-responsive" width="100%" height="100%">
<div id="test-container" style="position: absolute; top: 0px; cursor: crosshair; left: 0px; width: 300px; height: 200px; z-index: 8;">
<div class="icon-btn" style="top: 45px; left: 184px; display: block; position: absolute; border-radius: 3px; border: 1px solid #ffffff; overflow: visible; box-shadow: 0 0 2px #000; z-index: 16; width: 50px; height: 50px; padding: 15px 14px; color: #fff; cursor: pointer;"
id="icon-btn-1"></div>
</div>
</div>
請參閱JSFiddle的工作示例。
綁定試試這個:$(文件)。在( '點擊',' #test-container',函數(e){ $('#test-container')。on('click',function(e){ https://jsfiddle.net/x95owvL8/8/ – kag
@kag是的工作的實例。發佈它作爲答案。 – abhig10