2016-03-09 136 views
1

我想单击父div上的任意位置来切换我的div,除非单击了anchor元素。例如,如果我点击示例中的第一个文本,我希望它切换,但在我的示例中的第二个文本中,我不希望它切换。切换div除锚点之外点击

JSFiddle

我一直在使用!key.relatedTarget.tagName == 'a'尝试,但我不断收到undefined

回答

1

见上面的答案。

对于JQuery的方式;

$(document).ready(function(){ 
    $('.panel').on('click', function(e){ 
     if(e.target.id != 'test_description'){ 
     $('.description').toggle(); 
     } 
    }); 
}) 

jsfiddle

或者专门为一个A-元件;

$(document).ready(function(){ 
    $('.panel').on('click', function(e){ 
     var target = $(e.target); 
     if (!target.is("a")) { 
      $(this).find('.description').toggle(); 
     } 
    }); 
}) 

jsfiddle

对于只有JavaScript:

 if (target.get(0).tagName.toLowerCase() != 'a') { 
+0

有没有办法做到这一点只在JS?而不是jQuery? – user4756836

+0

有,用javascript方式更新我的帖子,以确定目标元素是否为主播。 – Webber

1

你应该检查活动对象:

function show_description(key) { 
    if(!$(event.target).is("a")) 
    { 
     $('#' + key + '_description').slideToggle(100); 
    } 
} 

JSFiddle