2017-04-01 76 views
0

我正試圖在我的網站中實現this code。基本上,使用JavaScript的可摺疊列表

  1. 我下載了js文件,添加到主文件夾,並添加以下到HTML文件的頭部:

  2. 添加一個簡單的列表到HTML文件:

    <ul class="collapsibleList"> 
    <li> 
    Test 1 
    <ul> 
    <li>Yes</li> 
    </ul> 
    </li> 
    <li> 
    Test 2 
    <ul> 
    <li>No</li> 
    </ul> 
    </li> 
    </ul> 
    
  3. ,並增加了一些樣式的CSS,有一個加/減圖標當樹被關閉/開啓:

    .collapsibleList li{ 
    list-style-image: url(images/plus.svg); 
    cursor: auto; 
    } 
    
    li.collapsibleListOpen{ 
    list-style-image: url(images/minus.svg); 
    cursor: pointer; 
    } 
    
    li.collapsibleListClosed{ 
    list-style-image: url(images/plus.svg); 
    cursor: pointer; 
    } 
    

但是,代碼不起作用。這似乎是因爲我需要將函數「應用」給定的元素。由於頁面狀態:

的應用功能將與類「collapsibleList」任何列表到樹視圖,並收縮其子列表:

1 // make the appropriate lists collapsible 
2 CollapsibleLists.apply(); 

此功能一般應在頁面加載後立即調用,使用諸如runOnLoad之類的代碼。

但後來我迷路了。我檢查了referred page,將RunOnLoad js添加到頁面,但仍然沒有任何結果。

這必須是一個微不足道的問題。正如你所猜測的,我幾乎不知道JS。我只想添加一個很好的可摺疊樹,在打開和關閉時有不同的符號。 JS似乎是這裏唯一的選擇。

UPDATE:我去了頁面的源代碼我從中獲取代碼,因爲作者顯示了一個可摺疊列表的例子。然後,我將他的代碼實施到我的。特別是,我在頭腦中添加了以下內容:

<script>var runOnLoad=function(c,o,d,e){function x(){for(e=1;c.length;)c.shift()()}o[d]?(document[d]('DOMContentLoaded',x,0),o[d]('load',x,0)):o.attachEvent('onload',x);return function(t){e?o.setTimeout(t,0):c.push(t)}}([],window,'addEventListener');</script> 
<script type="text/javascript"> 

這是我以爲我失蹤的那一點。然而,我無法做到這一點! runOnLoad(function(){CollapsibleLists.apply();});如果你正在使用jQuery

document.addEventListener("DOMContentLoaded", function(event) { 
    //your code to run since DOM is loaded and ready 
    CollapsibleLists.apply(); 
}); 

</script> 
+0

我還沒有看到這個網站添加腳本標記與源代碼在其HTML代碼....有趣...嘗試爲每個腳本 – repzero

+0

@repzero沒有區別。雖然看到更新的帖子。 – luchonacho

回答

0

您可以使用它代替

$(document).ready(function(){ 
CollapsibleLists.apply(); 
}) 
+0

它沒有工作。我實際上覆制了作者在他自己網站上的部分源代碼,因爲他在那裏顯示了一個可摺疊列表。查看更新的問題。儘管如此,仍然無法運作。 – luchonacho