如何使用Javascript / jQuery绑定事件处理程序以删除数组项?

时间:2013-12-29 05:11:49

标签: javascript jquery arrays event-handling

所以我对这个迷你程序有4个方面我正在玩弄:

  1. 主显示屏(一次显示输入的字符串1);
  2. 用户输入单词的表单;
  3. 存储每个用户输入字符串的独立数组;和
  4. 显示所有用户当前输入字符串的控制面板(迷你显示器)。
  5. 目前,当用户输入字符串时,它会被发送到容器数组。从阵列中,它转到显示器和控制面板。我添加了一个事件处理函数,允许用户双击控制面板中的条目,然后只从控制面板中删除该条目...(但我需要双击事件也要删除来自数组的条目)

    $(".controlbox").on('dblclick', 'p', function() {
        $(this).closest('p').remove();
    });
    

    查看原始代码:

    FIDDLE

    ...

    那么,我将如何绑定此事件处理程序,以便它还导致从容器数组中删除条目??? (因此,这也会导致从主显示器中删除条目,这正是我的目标)

    我希望用户能够从控制面板中删除条目,而不必从阵列中删除数组的元素。换句话说,我希望控制面板充当控制面板,因此需要以某种方式将该事件处理程序链接回容器数组....

1 个答案:

答案 0 :(得分:3)

您可以将控制台中的条目(双击的条目)与索引中的容器数组中的条目相关联。也就是说,控制台中的条目构成“.container”元素的子列表,并且与容器数组中的条目具有相同的索引。

因此,您可以使用以下命令从容器数组中删除条目。

$(".controlbox").on('dblclick', 'p', function() {
    var $entry = $(this);
    container.splice($entry.index(), 1);
    $entry.remove();
});

jsfiddle