Jquery使用appendTo内容隐藏所有Div单击功能问题

时间:2015-09-20 14:43:51

标签: jquery toggle hide show-hide appendto

我有一个“Jquery隐藏所有Div点击功能”,其中一个按钮可以隐藏/扩展特定的DIV类。如果我将我的超链接放在DIV中,直到我使用来自不同内容容器的appendTo函数自定义我的DIV内容,它就可以工作。

问题:当我单击span按钮时,将显示显示的DIV(带有超链接和字符)。但是当我点击显示的DIV中的任何地方,即不是超链接时,div将关闭。超链接将起作用,不会关闭DIV。

帮助:当我从任何部分或非超链接点击时,需要有关如何禁用的帮助,而不是关闭显示的DIV。

这是我的问题的模型 - https://jsfiddle.net/g8e80hqb/

这是我的代码 -

<div class="Toggle_HideAll_Container">
    <div class="container">
<div class="menu_r1c1"></div><br>
<div class="menu_r2c1"></div><br>
</div>

<span>Button hide/expand 1</span>
</div>

<span class="content1">
<a href="http://google.com" target="_blank">Content1 Link 1</a> Dont include this text in the jquery click<br><br>
<a href="http://google.com" target="_blank">Content1 Link 2</a> Dont include this text in the jquery click<br><br>
</span>

<span class="content2">
<a href="http://google.com" target="_blank">Content2 Link 1</a> Dont include this text in the jquery click<br><br>
<a href="http://google.com" target="_blank">Content2 Link 2</a> Dont include this text in the jquery click<br><br>
</span>

这是jquery -

$( ".content1" ).appendTo( ".menu_r1c1" );
$( ".content2" ).appendTo( ".menu_r2c1" );

// Start Toggle Hideall DIV
$('.Toggle_HideAll_Container div').hide();

$('.Toggle_HideAll_Container span').click(function(){
    var $this = $(this).parent().find('div');
    $(".Toggle_HideAll_Container div").not($this).hide();
    $this.toggle();
   }); 

感谢您的任何帮助,或者如果您需要更多信息。感谢。

2 个答案:

答案 0 :(得分:1)

尝试在选择器中使用:contains()来指定应切换元素的span元素,因为其他span元素包含在.Toggle_HideAll_Container

$('.Toggle_HideAll_Container span:contains(Button hide/expand 1)')
.click(function(){
    var $this = $(this).parent().find('div');
    $(".Toggle_HideAll_Container div").not($this).hide();
    $this.toggle();
}); 

jsfiddle https://jsfiddle.net/g8e80hqb/3/

答案 1 :(得分:1)

你可以试试这个:

$('.Toggle_HideAll_Container > span').click(function(){
    var $this = $(this).parent().find('div');
    $(".Toggle_HideAll_Container div").not($this).hide();
    $this.toggle();
}); 

这是FIDDLE

<强>解释

  

以前,您选择了所有span   Toggle_HideAll_Container,但您只需要带有文字的最后{​​{1}}   span所以,你可以 给它一个Button hide/expand 1 选择   直接ID Toggle_HideAll_Container`。