2013-04-01 175 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(); 
    }); 
})