我在元素上使用以下点击功能:
$('#extras').toggle(function() {
$('div#extras').show();
$('div#extras').stop().fadeTo('fast', 1);
},
function() {
$('div#extras').stop().fadeTo('fast', 0, function() {
$(this).hide();
} );
}
);
extras是一个div,里面有很多孩子。有些是按钮。现在,每当我单击其中一个按钮时,它会使父级div与子级消失。
我该如何制作点击功能只有在单击父级而不是所有子级时才会触发?
谢谢:)
答案 0 :(得分:1)
如果隐藏父级,则默认情况下会隐藏子级(后代)。
仅为完整性:当前元素的父级选择器为$(this).parent();
答案 1 :(得分:1)
单击元素时,将为所有父元素触发click事件。这可以通过从子节点的事件处理程序返回false来停止。因此,您需要为所有不应触发div的click事件并从中返回false的子项具有事件处理程序。像这样:
$("#id-of-button-inside-your-div").click(function() {
//Do whatever you need to do
return false;
});
答案 2 :(得分:0)
尝试使用children()
方法。
$('div#extras').children().show();
答案 3 :(得分:0)
如果div
消失,其所有内容都会消失。如果你必须让父母在没有孩子的情况下消失,你应该将孩子放在DOM外面,如果需要,可以用CSS直观地将它们放在里面。
答案 4 :(得分:0)
试试这个:
$('div#extras').find('*').click(function(event){ event.stopPropagation(); });
这将使div中的所有元素忽略div中的click事件。