我正在一个元素上使用下面的点击函数:
$('#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和子div都会消失。
如何使单击函数仅在父级被单击时触发,而不是在其所有子级被单击时触发?
谢谢:)
发布于 2010-08-17 14:51:03
当您单击某个元素时,将为所有父元素触发单击事件。这可以通过从子对象的事件处理程序返回false来停止。因此,您需要为所有不应该触发div的click事件并从它们返回false的子级设置事件处理程序。如下所示:
$("#id-of-button-inside-your-div").click(function() {
//Do whatever you need to do
return false;
});
发布于 2010-08-17 14:15:17
如果隐藏父项,则默认情况下将隐藏子项(子项)。
为了完整起见:当前元素的父元素的选择器是$(this).parent();
发布于 2010-08-17 14:14:29
尝试使用children()
方法。
$('div#extras').children().show();
https://stackoverflow.com/questions/3503309
复制