Jquery 排除div中的选择器
我有一个div,我想在其上启用单击功能,但不是div内的“a”标记或它正在切换的div: HTMLJquery 排除div中的选择器,jquery,Jquery,我有一个div,我想在其上启用单击功能,但不是div内的“a”标记或它正在切换的div: HTML <div class='row client-outstandings'> <div class='twelve columns'> <div class='panel'> <h3><a href="{% url clients.views.view_client c.client.id %}" target="_bl
<div class='row client-outstandings'>
<div class='twelve columns'>
<div class='panel'>
<h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
<div class='client-outstandings-details' style='display:none;'><a href="">Blah blah</a> </div>
</div>
</div>
</div>
<div class='row client-outstandings'>
<div class='twelve columns'>
<div class='panel'>
<h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
<a href="" class="outstandingsAnchor">Blah blah</a>
</div>
</div>
</div>
我试图使“.client-outstandings”div或“.client-outstandings-details”中的任何“a”标记都不会触发切换
有什么想法吗?你可以试试这个
$('.client-outstandings').live('click', function () {
$(this).find('.client-outstandings-details').toggle('fade');
});
$('.client-outstandings a').live('click', function(e){
e.stopPropagation();
return true;
});
但我建议您在上使用。在
上使用
$(document).on('click', '.client-outstandings', function () {
$(this).find('.client-outstandings-details').toggle('fade');
});
$('.client-outstandings').on('click', 'a', function(e){
e.stopPropagation();
return true;
});
.live
方法已被弃用。您可以在
方法上使用:
$(document).on('click', '.client-outstandings', function () {
为了防止事件冒泡,可以使用stopPropagation
方法:
$('a').click(function(event) {
event.stopPropagation()
})
请注意,要使用
方法上的委派事件,应使用静态父元素(更好)或文档对象 我认为您正在寻找以下内容:
HTML
<div class='row client-outstandings'>
<div class='twelve columns'>
<div class='panel'>
<h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
<div class='client-outstandings-details' style='display:none;'><a href="">Blah blah</a> </div>
</div>
</div>
</div>
<div class='row client-outstandings'>
<div class='twelve columns'>
<div class='panel'>
<h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
<a href="" class="outstandingsAnchor">Blah blah</a>
</div>
</div>
</div>
-{{c.总计|货币}
jQuery
$(function () {
$(document).on('click', 'a.outstandingsAnchor', toggle(function() {(
$(this).wrap('<div class="client-outstandings-details" />');
}, function() {
$(this).unwrap();
)};
});
$(函数(){
$(文档)。在('click','a.outstandingsAnchor',切换(函数(){(
$(此).wrap(“”);
},函数(){
$(this.unwrap();
)};
});
您的问题不清楚,请澄清您看不到什么触发器,因为您的a标记位于div标记内使用。on代替。live使用您的代码将其更改为on我得到:未捕获引用错误:未定义stopPropagation