【问题标题】:Adding Click Event for Elements inside multidimensional array [closed]为多维数组中的元素添加点击事件[关闭]
【发布时间】:2013-04-01 18:38:23
【问题描述】:

我在做什么的解释。

我有 ul,里面有 li,里面有名片,数量不等。我想添加额外的 li 以显示我单击的访问卡的描述。例如,如果我点击了第一张第二张或第三张卡片,我想在第四张添加新的 li,如果我点击第四张,第五张或第六张,那么我想在第七张添加新的 li。

为此,我创建了一个函数,将 li 拆分为多维数组,在一个数组中包含三个 li。并且那个multimensinal数组是调用块。现在我得到了写。但我无法在我需要的地方添加新的 li。

我收到此错误 TypeError: chunks[i] is undefined

我给出了下面的代码

chunks[i] 未定义

chunks = [ 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15]
]

for (var i=0; i<chunks.length; i++) {    
    for (var j=0; j<chunks[i].length; j++) {
        $(chunks[i][j]).click(function() {
             $(chunks[i][j]).append('<li class="description"> <div class="cardDesCont mT1Mi"></div></li>');
        });
    }
}

为什么会这样?

【问题讨论】:

  • 为什么要为每个元素添加点击事件?在父节点上使用事件委托来处理它。
  • 这是你第二次问这个问题,你的first question 有什么问题?
  • li 定义为什么?

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

你有i++,你应该有j++,在内部循环中。因此,您将 i 递增到数组边界之外。你的代码应该是:

for (var i=0; i<chunks.length; i++) {   
    for (var j=0; j<chunks[i].length; j++) {
        // --------------------- HERE ^^^
        $(chunks[i][j]).click(function() {
            console.log('script works');
        });
    }
}

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多