通过一次单击调用js函数多次

时间:2012-02-18 08:50:32

标签: javascript

我是javascript的新手,所以我的问题可能有一个简单的解决方案。 我制作了一个xml文件,其中存储了我想要添加到我的网页的图像的信息,这些图标添加了标签。 我找到了一个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。

所以问题是,我如何编写一个函数,使用这些数据来调用我的取消隐藏函数我想要的次数?

/感谢

1 个答案:

答案 0 :(得分:0)

while(bb < TagArrayJS.length)更改为while(bb < TagArrayJS[aa].length)

此外,正如其他用户所说,考虑学习jQuery,因为它会简化代码。