这就是我的HTML代码的样子,在实际代码中有几个这样的块。当你点击这个DIV中的某个地方时,toogleDescription(this)会被调用。我的问题是,当你点击其中一个ANCHORS(a)时我不希望发生什么事情,那么是否有可能在Javascript中定义某些不会发生任何事情的DIV?
<div class="dokumente_table">
<div class="dokumente_group onclick="toggleDescription(this)">
<img class="dokumente_triangle" src="/_files/img/triangle_13.png">
<div class="button_group">
<a class="button">Content...</a>
<a class="button">Content...</a>
</div>
<div class="dokumente_download_frame">
<a class="dokumente_download">Content...></a>
</div>
<div class="dokumente_row">
Content...
</div>
<div class="dokumente_row">
Content...
<div class="dokumente_extra_row">
Content...
</div>
</div>
</div>
所以这是被调用的Javascript。
function toggleDescription(that) {
if($(that).find('.dokumente_extra_row').is(':visible')) {
$(that).find('.dokumente_extra_row').slideUp(500);
$(that).find('.dokumente_triangle').rotate({
duration: 1000,
angle: 90,
animateTo: 0
});
}
else {
$(that).find('.dokumente_extra_row').slideDown(500);
$(that).find('.dokumente_triangle').rotate({
duration: 1000,
angle: 0,
animateTo: 90
});
}
}
答案 0 :(得分:2)
如果您不想在点击特定锚点时执行toggleDescription
,则可以使用特定锚点中的stopPropagation()
事件对象方法阻止点击的传播。点击事件。
例如,如果您想跳过以下锚点的执行
<a class="dokumente_download">Content...></a>
你可以做到
$(".dokumente_download").click(function(e){
e.stopPropagation();
});
答案 1 :(得分:0)
您需要更改此行,如下所述:
<div class="dokumente_group onclick="toggleDescription(this,event)">
然后你的功能必须是:
function toggleDescription(that,event) {
if(!$('a').is(event.target)){
if($(that).find('.dokumente_extra_row').is(':visible')) {
$(that).find('.dokumente_extra_row').slideUp(500);
$(that).find('.dokumente_triangle').rotate({
duration: 1000,
angle: 90,
animateTo: 0
});
}
else {
$(that).find('.dokumente_extra_row').slideDown(500);
$(that).find('.dokumente_triangle').rotate({
duration: 1000,
angle: 0,
animateTo: 90
});
}
}
}