2012-11-14 87 views
0

我寫了這段代碼來加載一個DIV的內容,當有人點擊一個鏈接。Jquery雙擊鏈接去除div內容

現在,如果您點擊一個鏈接兩次,它將刪除內容。

下面是代碼:

$('a').click(function() { 
    var id = $(this).attr('class'); 
if(id == 'first') 
    { 
     $('.active').removeClass('active'); 
     $('a.first').addClass('active'); 
    } 
else if(id == 'second')  
    { 
     $('.active').removeClass('active'); 
     $('a.second').addClass('active'); 
    } 

    $('#first').toggle(id == 'first'); 

    $('#second').toggle(id == 'second'); 
});​ 

HTML:

<a class="first">one</a> 
<a class="second">two</a> 
<div> 
    <li id="first"> 
     <h2>pen</h2> 
     <div> 
      <div>parker</div> 
     </div> 
    </li> 
    <li id="second" style="display: none;"> 
     <h2>car</h2> 
     <div>Bugatti</div> 
    </div> 
    </li> 
</div>​ 

CSS:

.active { color: green; }​ 
+0

它只是用於快速雙擊(在這種情況下,它可能是一些競爭條件),或即使這些點擊隔開幾十秒? –

回答

4

簡單的解決方法使用您的代碼使用的點擊回調函數檢查條件:

http://jsfiddle.net/UuFgt/

if($(this).is('.active')) return false; 
-1

你是不是「裝」的內容,而只是顯示它,它一直隱藏(與display: none)之後。 所以內容不是「刪除」,它是隱藏的。任何時候你使用removeClass('active');,你都會隱藏相應的元素。 代碼中的toggle()有什麼想法?我認爲你錯用了它。要麼你應該顛倒兩個(第一個用第一個,第二個用第一個),或者以不同的方式做。