识别可点击区域

时间:2010-11-23 08:19:16

标签: jquery

我有一个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”的所有子节点放在一个数组中并循环遍历它们。 任何想法和想法,赞赏, 谢谢

3 个答案:

答案 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与此进行比较   以确定事件是否是   由于事件冒泡而被处理。   此属性在事件中非常有用   当事件冒泡时,代表团。

Source