我有一个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="_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>
代码:
$(function () {
$('.client-outstandings').live('click', function () {
$(this).find('.client-outstandings-details').toggle('fade');
});
});
我正试图让它成为“.client-oustandings”div或“。client-outstandings-details”内的任何“a”标签都不会触发切换。
有什么想法吗?
答案 0 :(得分:3)
live
方法,您可以使用on
方法:
$(document).on('click', '.client-outstandings', function () {
为防止事件冒泡,您可以使用stopPropagation
方法:
$('a').click(function(event) {
event.stopPropagation()
})
请注意,要使用on
方法委派事件,您应该使用静态父元素(更好)或文档对象。
答案 1 :(得分:0)
你可以试试这个
$('.client-outstandings').live('click', function () {
$(this).find('.client-outstandings-details').toggle('fade');
});
$('.client-outstandings a').live('click', function(e){
e.stopPropagation();
return true;
});
但我建议您使用on
。使用on
代码是
$(document).on('click', '.client-outstandings', function () {
$(this).find('.client-outstandings-details').toggle('fade');
});
$('.client-outstandings').on('click', 'a', function(e){
e.stopPropagation();
return true;
});
答案 2 :(得分:0)
我认为您正在寻找以下内容:
<强> 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>
<a href="" class="outstandingsAnchor">Blah blah</a>
</div>
</div>
</div>
<强>的jQuery 强>
$(function () {
$(document).on('click', 'a.outstandingsAnchor', toggle(function() {(
$(this).wrap('<div class="client-outstandings-details" />');
}, function() {
$(this).unwrap();
)};
});