【发布时间】:2017-04-20 06:49:57
【问题描述】:
我有一个 id 为 test-container 的父 div,其中包含类为 icon-btn 的子 div。
当我单击 parent-div 中的任意位置时,一个新的 child-div 元素将附加到单击位置的 parent-div。
问题是当我点击 child-div 元素 parent-div 事件首先触发,然后 child-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。
【问题讨论】:
-
试试这个:$(document).on('click','#test-container', function(e) { instance of $('#test-container').on('click ',函数(e){jsfiddle.net/x95owvL8/8
-
@kag 是的,这行得通。将其发布为答案。
标签: javascript jquery