我是jquery的新手。我试图隐藏getLocation div,如果点击其他ID。 但这不起作用
<div ng-init="setFromDiv = 'green'" ng-click="setFromDiv = 'green'"class="box green"></div>
<div ng-click="setFromDiv = 'blue'" class="box blue"></div>
<div ng-click="setFromDiv = 'red'" class="box red"></div>
<div ng-click="setFromDiv = 'yellow'" class="box yellow"></div>
<div class="mainBox" ng-class="setFromDiv"></div>
答案 0 :(得分:1)
试试这个:
$('*:not("#getLocation")').click(function(){
$("#getLocation").toggle();
});
仅语法错误。
$(&#39; *:not(&#34;#getLocation&#34;)&#39;)=&gt;将返回除id = getLocation
之外的所有元素答案 1 :(得分:1)
您的陈述
if($("#getLocation").show()==true){
永远不会是真的,因为它是一个对象。
jQuery在每次getter操作后返回元素的对象。
是对象链接。
例如,如果您有一个ID为myDiv
然后你可以在一个语句中执行三个操作,如下所示:
$("#myDiv").show().css('color', 'red').css('padding', '12px 12px 12px 12px');
此处,在show()
元素之后,返回元素的对象。
再次更改css并再次返回一个对象。
使用jQuery .toggle()
更正后的代码:
$(':not(#getLocation)').click(function(){
$("#getLocation").toggle();
});
答案 2 :(得分:1)
试用此代码
$("#getLocation").click(function(){
$("#getLocation").addClass("hide");
});
答案 3 :(得分:1)
使用此:
$('#getLocation').on('click', function(){
var target = $(this).attr('rel');
$("#getLocation"+target).show().siblings("div").hide();
});
答案 4 :(得分:1)
您可以使用<div id="a">
Div 1
</div>
<div id="b">
Div 2
</div>
<div id="getLocation">
Hide/show
</div>
过滤掉相关的div,如下所示:
// as example, we target all div
$('div').click(function(e){
// but only filter div without getLocation ID
if ( $(e.target).attr('id') != 'getLocation' ) {
$("#getLocation").toggle();
}
});
的js
InputScope
答案 5 :(得分:1)
你可能需要这个。
$(document).not($("#getLocation")[0]).click(function(){
if($("#getLocation").is(':visible')){
$("#getLocation").hide();
}
});
答案 6 :(得分:1)
您可以使用通常用于导航菜单的容器逻辑。例如,如果你点击div之外,你的div就会隐藏起来。
试试这个:
$(document).click(function (e)
{
var container = $("YOUR CONTAINER SELECTOR");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
}
});
希望这对你有所帮助!