2017-09-01 78 views
-1

我是新的JavaScript初學者,我真的很想學習它,我最近嘗試用Codemiror製作HTML編輯器,並提供所有可能的選項和設置。我知道這對新手來說很難,但我有信心。所以現在我試圖爲HTML編輯器製作可變化的分割面板。我有Splitpane「jquery splitpane」,我想要在水平和垂直視圖之間切換。但要做到這一點,我需要更改用於分割面板的div的「類」和「IDS」。垂直分割面板有一些類和IDS,水平分割有其他類。我發現如何使用按鈕同時切換多個類,但是現在我遇到了「IDS」問題。我在網站上找到了一個修改腳本的腳本,但是我無法使它工作。如果你們能幫我解決這個問題,我真的很感激它。因此,這裏是用於切換ID的腳本:用按鈕切換多個ID

#red {background:red;} 
 
#blue {background:blue;} 
 

 
#green {background:green;} 
 
#yellow {background:yellow;}
<button href="#" class="buttontoggle buttontoggle2">changehtmlstyle</button> 
 

 
<div id="blue" class="toggleelement">This is a div</div> 
 

 
<div id="green" class="toggleelement2">This is a div</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script type="text/javascript"> 
 
    var clickCount = 0; 
 
    $(".buttontoggle").on("click", function() { 
 
     clickCount++; 
 
     $("div.toggleelement").attr("id", clickCount % 2 === 0 ? "blue" : "red"); 
 
    }); 
 
</script> 
 

 
<script type="text/javascript"> 
 
    var clickCount = 0; 
 
    $(".buttontoggle").on("click", function() { 
 
     clickCount++; 
 
     $("div.toggleelement2").attr("id", clickCount % 2 === 0 ? "blue" : "red"); 
 
    }); 
 
</script>

我可以切換ID之一,如果我刪除其中的一個,但我需要4點以上的ID在同一時間切換。

+2

[div id和div class之間的差異可能重複](https://stackoverflow.com/questions/544010/difference-between-div-id-and-div-class) –

+0

作爲參考,您可以選擇multiple使用jQuery(如'$(「#red #blue」)'')的ID。 –

+0

@StevenGoodman不應該是'$(「#red,#blue」)'? – jmoerdyk

回答

0

您已爲.buttontoggle創建了兩個點擊事件功能。點擊按鈕將導致這兩個函數運行。由於每個功能都有clickCount++,因此每次點擊後clickCount的值會增加2。一遍又一遍地加0,總是給你2的倍數,而2的mod會總是給你0.這就是爲什麼你永遠不會看到顏色切換,因爲只有一個條件總是成立的。

我不確定你爲什麼寫了兩次事件,但有幾個解決方案。您可以使用符合您需要的任何一種。 如果你只有一個點擊事件罰款,那麼就合併兩個事件:

var clickCount = 0; 
$(".buttontoggle").on("click", function() { 
    clickCount++; 
    $("div.toggleelement").attr("id", clickCount % 2 === 0 ? "blue" : "red"); 
    $("div.toggleelement2").attr("id", clickCount % 2 === 0 ? "blue" : "red"); 
}); 

或者,如果你需要兩個函數以任何理由,你可以從他們的一個刪除clickCount++