我對javascript很陌生,所以可能有一個簡單的解決方案來解決我的問題。 我製作了一個xml文件,用於存儲有關要添加到我的網頁中的圖像的信息,並添加了這些標籤。 我發現了一個js函數,它可以通過點擊鏈接隱藏/顯示圖像,就像我想要的那樣。 但是我想表明帶有特定標籤的所有圖像,在點擊這就是問題的所在從一次點擊多次呼叫js函數
<script type="text/javascript">
function unhide(divID)
{
var item = document.getElementById(divID);
if (item)
{
item.className=(item.className=='hidden')?'unhidden':'hidden';
}
}
function ClassTag(Name)
{
var TagNameArrayJS = <?php echo json_encode($TagNameArray); ?>;
var TagArrayJS = <?php echo json_encode($TagArray); ?>;
var PhotoIdArrayJS = <?php echo json_encode($PhotoIdArray); ?>;
var aa = 0;
var bb = 0;
while(aa < TagNameArrayJS.length)
{
if(TagNameArrayJS[aa] == Name)
{
while(bb < TagArrayJS[aa].length)
{
unhide(PhotoIdArrayJS[TagArrayJS[aa][bb]]);
bb = bb + 1;
}
}
aa = aa + 1;
}
}
</script>
輸出:
<script type="text/javascript">
function unhide(divID)
{
var item = document.getElementById(divID);
if (item)
{
item.className=(item.className=='hidden')?'unhidden':'hidden';
}
}
function ClassTag(Name)
{
var TagNameArrayJS = ["All","Anders","Hanna","Church","Party"];
var TagArrayJS = [[0,1,2],[0],[0,1,2],[0,2],[1]];
var PhotoIdArrayJS = ["JPG001","JPG002","JPG003"];
var aa = 0;
var bb = 0;
while(aa < TagNameArrayJS.length)
{
if(TagNameArrayJS[aa] == Name)
{
while(bb < TagArrayJS[aa].length)
{
unhide(PhotoIdArrayJS[TagArrayJS[aa][bb]]);
bb = bb + 1;
}
}
aa = aa + 1;
}
}
</script>
的HTML:
<a href="javascript:ClassTag('hanna');">Hanna</a>
我寫的一個新的函數「ClassTag」在我想要的圖像上調用取消隱藏功能。 TagNameArray具有標籤的名稱,以便與被調用進行比較。 TagArrayJS在每個位置都有一個數組,用於調用圖像編號。 PhotoIdArrayJS具有用於取消隱藏功能的Id。
所以這個問題,我如何編寫一個函數,使用這些數據來調用我的unhide函數我想要的次數?
/感謝
我會建議使用jQuery,如果可能的話 - 這將大大簡化您的代碼。 – 2012-02-18 08:53:42
我只是在想同樣的事情。 jQuery是你的問題的答案。嵌套的for循環有很多樂趣可以看,但這樣的痛苦需要維護。花一點時間學習jQuery,你就會喜歡它。 – sngregory 2012-02-18 09:02:23
它可能會,我想學習更多的腳本雖然所以我雖然我會嘗試讓我自己,這樣我就能明白我在做什麼:) – WibergAnders 2012-02-18 09:02:30