2015-11-15 94 views
3

好吧,我試圖創建一個使用jquery選擇div的平滑外觀顏色。在顯示div中使用jquery .data

我有HTML:

   <div id="firstSelect"><p onclick="displayFirst()">Colour</p> 
       <div id="firstSelectDiv"> 
        <div id="beigeDiv">Beige 
        </div> 
        <div id="brownDiv">Brown 
        </div> 
        <div id="creamDiv">Cream 
        </div> 
        <div id="whiteDiv">White 
        </div> 
        <div id="greyDiv">Grey 
        </div> 
        <div id="blackDiv">Black 
        </div> 
        <div id="redDiv">Red 
        </div> 
        <div id="blueDiv">Blue 
        </div> 
        <div id="greenDiv">Green 
        </div> 
        <div id="stripedDiv">Striped 
        </div> 
        <div id="patternedDiv">Patterned 
        </div> 
       </div> 
      </div> 

和代碼:

function displayFirst(){ 
$('#beigeDiv').data('display', 'true'); 
$('#brownDiv').data('display', 'true'); 
$('#creamDiv').data('display', 'true'); 
$('#whiteDiv').data('display', 'true'); 
$('#greyDiv').data('display', 'true'); 
$('#blackDiv').data('display', 'true'); 
$('#redDiv').data('display', 'true'); 
$('#blueDiv').data('display', 'true'); 
$('#greenDiv').data('display', 'true'); 
$('#stripedDiv').data('display', 'true'); 
$('#patternedDiv').data('display', 'true'); 
if(?not sure?){ 
} 

}

接着我需要使用分配給該元件要顯示的數據的div。 Divs最初是{display:none;},但我想用jquery顯示,然後我只能選擇其中的一個來保持顯示。如果那有意義的話。

基本上,我將爲div設置一個.data變量,然後我將選擇其中一個並隱藏其餘部分。我需要這個變量,因爲除了一個很長的javascript函數之外,沒有辦法設置它們的顯示方式。任何人都可以協助將函數中的變量用於顯示元素。我有點新,卡住了。

編輯:我應該補充我非常瞭解jquery,這個網站是我第一次深入研究它。要溫柔。

+0

你只想處處顯示下一個並隱藏其他人點擊按鈕? – jvecsei

+0

不,我想點擊其中一個,讓它保持選中狀態,而另一個隱藏 –

+0

目前尚不清楚您的預期行爲。 '我想點擊其中一個,讓它保持選中狀態,而另一個隱藏'你選擇什麼意思?你如何展示它?我知道你正在尋找點擊顯示元素,但因爲你不能點擊隱藏的元素,這是無意義的 –

回答

4

,你可以這樣做:

https://jsfiddle.net/a3aLue2t/

// tell jquery to wait for the webpage to finish loading 
$(document).ready(function(){ 

    // select all the divs with a color inside 
    var colors = $('#firstSelectDiv > div'); 

    // when a color is clicked... 
    colors.click(function(){ 

     // hide all the colors 
     colors.hide(); 

     // make sure the clicked color is still visible 
     $(this).show(); 

    }); 

}); 

編輯:如果您想先隱藏自己的顏色列表中,那麼你可以這樣做:

https://jsfiddle.net/ezktjts3/1/

化妝確定你有這個CSS來隱藏你的firstSelectDiv div:

#firstSelectDiv { 
    display: none; 
} 

,並可以顯示div和反應,被點擊的顏色如下:

// tell jquery to wait for the webpage to finish loading 
$(document).ready(function(){ 

    // select all the divs with a color inside 
    var colors = $('#firstSelectDiv > div'); 

    // show your colors when "Color" is clicked on the webpage 
    $('#firstSelect p').click(function(){ 
     colors.show(); 
     $('#firstSelectDiv').css('display', 'block'); 
    }); 

    // when a color is clicked... 
    colors.click(function(){ 

     // hide all the colors 
     colors.hide(); 

     // make sure the clicked color is still visible 
     $(this).show(); 

    }); 

}); 
+0

非常感謝,這將有助於展示我想要的,但是如何在點擊第一個選擇P時顯示所有這些內容。我對這個(這個)聲明還不是很滿意。 –

+0

@ A.Wolff他希望點擊的顏色保持可見,而其他顏色隱藏,對嗎?處理程序中的「this」引用點擊的DOM元素,在這種情況下是被點擊的顏色。通過執行'$(this)'我們可以得到這個顏色的jquery選擇器,我們調用'.show()'來確保點擊的顏色仍然可見,因爲我們剛剛隱藏了所有的顏色,但想要點擊的顏色保持可見。 – Macmee

+0

A.Wolff沒有壞,這個網站是爲了學習:) @TomAlbanese你最初是不是想要顯示顏色,然後當你點擊「顏色」時你想要顯示所有的顏色,然後當你選擇一種特定的顏色時,那麼你想要隱藏所有其他顏色? – Macmee