jquery not operator:无法隐藏div

时间:2016-01-11 07:20:43

标签: php jquery

我是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>

7 个答案:

答案 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

DEMO

答案 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();
    }
});

希望这对你有所帮助!