2013-04-01 123 views
0

我在jQuery中很新。使用jQuery点击其他div后隐藏特定的div

我有一个HTML代码如下其在飞行中产生并添加到我的网页:


<div class="outstandingcallback"> 
<span>a</span> 
<span>b</span> 
</div> 
<div class="outstandingcallback"> 
<span>c</span> 
<span>d</span> 
</div> 
    ...... 

我需要隐藏其中的一个,当我点击另一个。 我用下面的jQuery,但我不知道如何隐藏div元素。


    $('.outstandingcallback').bind('click', function() { 
       var selectdCallItemID = $(".callItemID", this).html(); 


       var myHtmlCode = $('#CallBacks').html(); 

       $('' + myHtmlCode + '').find('div').each(function() { 
        var thisCallID = $(".callItemID", this).html(); 

        if (thisCallID == selectdCallItemID) { 
         alert("test"); 
         $('' + myHtmlCode + '').find(this).hide(); 
        } 
       }); 
      }); 

我不知道有关以下部分:


    $('' + myHtmlCode + '').find(this).hide(); 
+0

创建jsFidel演示请 –

+0

试试这个'$('。outstandingcallback')。hide();' – 7alhashmi

+0

callItemID在哪里找到? –

回答

1

您可以使用.siblings()找到在同级别其它elems的:

因为which is generated on the fly and added to my page使用.on并委托该事件到最近的现有父或document

$(document).on('click', '.outstandingcallback', function() { 
    $(this).siblings('.outstandingcallback').hide(); 
}); 
+0

谢谢Jai,那就是诀窍... –

0
<script> 
function doAnimation() 
{ 
    $("#secondDiv").toggle(300); 
} 
    </script> 


<div id='firstDiv' onclick='doAnimation()'></div> 
<div id='secondDiv' ></div> 
0
if($(".outstandingcallback:first").click()) { 
    $(".outstandingcallback:first").show(); 
    $(".outstandingcallback:last").hide(); 
} else if ($(".outstandingcallback:last").click()) { 
    $(".outstandingcallback:first").hide(); 
    $(".outstandingcallback:last").show(); 
} 
+0

正如我所说的,这些都是即时生成的,所以没有人知道它们中会生成多少个以及您点击哪一个! –

+0

确定您可以添加脚本来为div添加动态ID – cvelinho

+0

var outstanding = $(“。outstandingcallback”); (var i = 0; i cvelinho

1

尝试这样的事情,FIDDLE

$('.outstandingcallback').bind('click', function() { 
    $('.outstandingcallback').hide(); 
    $(this).show(); 
}); 
0

简单地隐藏未点击DIV所有你需要的是这样的:

$(function(){ 
    $('.outstandingcallback').on('click', function() { 
     $(this).siblings().hide(); 
    }); 
})