$( document ).ready(function() {
$('#handler').on('click', '.selector', function(){
alert( $(this).text());
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="handler">
handler content
<a href="#" class="selector">selector content</a>
</div>
&#13;
如何在未明确指定#handler
方法的情况下获取on
?
答案 0 :(得分:3)
使用事件&#34; delegateTarget&#34;属性
$( document ).ready(function() {
$('#handler').on('click', '.selector', function(e){
console.log(e.delegateTarget);
});
});
工作示例: -
$( document ).ready(function() {
$('#handler').on('click', '.selector', function(e){
console.log(e.delegateTarget);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="handler">
handler content
<a href="#" class="selector">child</a>
<div>
<a href="#" class="selector">grand child</a>
</div>
<div>
<div>
<a href="#" class="selector">great grand child</a>
</div>
</div>
</div>
&#13;
答案 1 :(得分:1)
在这种特定情况下,您可以直接使用您拥有的唯一ID
$("#handler").
如果是一个班级,你可以$(this).parent()
到顶级。
你可以将它链接到第n级,直到你到达顶部。 $(this).parent().parent()
...
或者由于你知道选择器,你可以$(this).parents("selector")
答案 2 :(得分:0)
如果父级具有层次结构,则使用closest()
$(this).closest('div')
如果它是目标元素的直接父项,则使用parent()
$(this).parent('div');
选择器是唯一的,其ID为handler
,那么最好的选项是
$('#handler')
答案 3 :(得分:-1)
将其更改为
.selector
或者如果您仍然希望在有人点击$( document ).ready(function() {
$('#handler').on('click', '.selector', function(){
var handler = $(this).parent();
});
});
时触发该功能,那么您可以执行以下操作
{{1}}