我有一个div class =“parent”。当我点击它时,我需要克隆div class =“child”并根据我点击的父区域显示它们。当我点击div class =“child”时会出现问题,出现另一个孩子div,这是我不想要的行为。 解决这个问题的一种方法是写下这样的东西:
$('.parent').click(function(event){
if (event.target.className != 'child'){
$('.child').clone().show();
}
});
我认为这不是很优雅,因为如果在div class =“child”里面会是孩子,那么你也必须把它们放在if()语句中。 有人能告诉我如何管理这个问题。可能有一种方法可以将div class =“child”的所有子节点放在一个数组中并循环遍历它们。 任何想法和想法,赞赏, 谢谢
答案 0 :(得分:1)
这有什么问题?
$('.parent').click( function(e) {
$(this).find('div[class=child]').show();
});
答案 1 :(得分:1)
试
jQuery('.parent').bind('click', function(){
var NewChild = jQuery('.child').clone(false);
NewChild.appendTo(jQuery(this));
NewChild.show();
}
这会克隆孩子并将其附加到您的父母,我不知道是否需要这个,如果不只是删除appendTo并设置克隆(true)
答案 2 :(得分:1)
$('.parent').click(function(event){
if (event.target === this){
$('.child').clone().show();
}
});
应该只针对父母,而不是孩子。来自jQuery文档:
<强> event.target:强> target属性可以是元素 注册参加活动或者 它的后裔。它通常很有用 将event.target与此进行比较 以确定事件是否是 由于事件冒泡而被处理。 此属性在事件中非常有用 当事件冒泡时,代表团。