2013-12-23 69 views
0

我需要知道如何讓div在點擊鏈接時保持打開狀態。如何讓一個div在點擊鏈接時打開

EXAMPLE

請查看上面的例子。 A <div>包含a/link。當點擊<div>時,其類將被切換。我想阻止在點擊a/link時切斷課程。

下面是HTML:

<div id="out"> 
    <div class="content"> 
     <a>click here to learn more..</a> 
    </div> 
</div> 

<div class="side"> 
</div> 

這裏是JavaScript:

$(document).ready(function() { 
    $("#out").click(function(event) { 
     if (!$(event.target).is('a')){ 
      $(this).toggleClass("side"); 
     } 
    }); 
    $(".side").click(function() { 
     $(this).toggleClass("out"); 
    }); 
}); 
+1

此處添加代碼。因爲如果jsFiddle會離開你,問題不會爲別人說什麼。 – Khamidulla

+0

順便說一句,這個網站上有一個搜索框。你應該嘗試使用它 –

+0

對不起,我是一種新的stackoverflow,我將在下次提供代碼。感謝提及! :) – Jeroen

回答

2

使用.stopPropagation()

$(document).ready(function() { 
    $("#out").click(function() { 
     $(this).toggleClass("side"); 
    }); 
    $(".side").click(function() { 
     $(this).toggleClass("out"); 
    }); 
    $('.content a').click(function(e){e.stopPropagation();}) 
}); 

jsFiddle example

+1

大聲笑,我見過stoppropagation之前,也試過它的代碼,但從來沒有工作。現在我知道問題是什麼了。謝謝! – Jeroen

0

使toggleClass更改爲單擊的條件。如果您收集event對象作爲參數,則可以檢查它的目標是否爲鏈接,並且只在目標不是鏈接時才切換類。

$(document).ready(function() { 
    $("#out").click(function(event) { 
     if (!$(event.target).is('a')){ 
      $(this).toggleClass("side"); 
     } 
    }); 
    $(".side").click(function() { 
     $(this).toggleClass("out"); 
    }); 
}); 

例子:http://jsfiddle.net/4hpgb/2/

+0

這也是這段代碼的一個很好的變體。這工作也很好謝謝! – Jeroen