Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组项作为列表和嵌套列表_Javascript_Jquery_Jquery Plugins_Supersized - Fatal编程技术网

Javascript 数组项作为列表和嵌套列表

Javascript 数组项作为列表和嵌套列表,javascript,jquery,jquery-plugins,supersized,Javascript,Jquery,Jquery Plugins,Supersized,我为每个背景页面都有一组图像,我使用一个数组根据我单击的菜单项加载每个图像。菜单项也有子菜单,整个菜单系统应与数组项“同步”: html菜单: Home (page 1) (menu item hidden but should be "Menu 1" if it would be displayed) <ul id="menu"> <li><a href="page2">Menu 2</a></li> <li

我为每个背景页面都有一组图像,我使用一个数组根据我单击的菜单项加载每个图像。菜单项也有子菜单,整个菜单系统应与数组项“同步”:

html菜单:

Home (page 1) (menu item hidden but should be "Menu 1" if it would be displayed)

 <ul id="menu">
    <li><a href="page2">Menu 2</a></li>
    <li><a href="page3">Menu 3</a> 
          <ul id="sub-menu">
               <li><a href="page4">Menu 4</a></li>
          </ul>
    </li>
    <li><a href="page5">Menu 5</a></li>
 </ul>
当站点加载时,它将读取[0]1.jpg,这是主页。但是我们可以点击的第一项是“菜单2”,因为“主页”按钮没有显示在菜单中,它应该转到[1]2.jpg

这是我使用的jQuery:

jQuery (function($) {
  $("#menu .menu li").each(function (index) {
    var item = $(this);
    $("a", item).click(function (e) {
        e.preventDefault();
        api.goTo(index+1);
    });
   });
});
使用“api.goTo(index+1);”(在这里使用超大插件)我是说(或者我认为我是)在第一次点击菜单项时,转到index+1,它应该是[1],但它不是,它看起来仍然是[0],用于主页。此外,我认为嵌套项仍将遵循索引顺序

基本上,我无法获得正确页面的正确图像。就像我没有根据我单击的菜单项导航数组一样


本例中的p.s.索引是jquery循环中项的基于0的索引

我不知道您在做什么,但是您正在使用一个变量绑定循环中的click函数,该变量将发生变化,结果将不是您所期望的

也许这会有帮助

$('a', 'li').on('click', function(e) {
     e.preventDefault();
     var index = this.href.replace('page', '');
     api.goTo(index);
});
由于子菜单的原因,在点击时从href获取正确的数字似乎是最容易的

引用数组中的值时,必须执行以下操作:

var index = ['1.jpg', '2.jpg', '3.jpg'] //an array, starts with zero

var firstimage = index[0]; //this variable is now the string "1.jpg"

我猜您只是在向
api.goTo(number)
函数传递一个数字,该函数会在数组中找到图像链接,至少在我看来是这样的?

准确地说。那么什么是“var index=this.href.replace('page','');”。。这里的“页面”是什么?它是点击链接的href属性,因此如果点击
,href将是“page1”,然后“页面”将被替换为零,留下数字“1”。好的,那么要自动获取href,我该怎么做?它不是手动插入的,我必须这样说:“在我的例子中,索引是jquery循环中项的基于0的索引”
var index = ['1.jpg', '2.jpg', '3.jpg'] //an array, starts with zero

var firstimage = index[0]; //this variable is now the string "1.jpg"