我有一个“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();
});
感谢您的任何帮助,或者如果您需要更多信息。感谢。
答案 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`。