数组乘法数据

时间:2016-06-03 19:00:39

标签: javascript arrays

我无法弄清楚为什么我的数据在存储到数组时会表现得很奇怪。基本上我所拥有的是一个音符部分,我正在尝试实现一个功能,让您编辑音符,它将在您编辑时保存音符。

我做了这个,当音符聚焦时它会保存当前键入的音符,然后在键入新音符时,它将查找数组中的旧音符并将其替换为新音符。这似乎适用于第一个,但是当我在第一个之后单击另一个音符时,它会用最新音符替换第一个音符数据。

图像是阵列的控制台日志。我做了什么:添加了4个音符,ABCD,添加1到A,2到B,3到C,4到B.这是控制台日志每次显示的内容,因为你可以看到1a工作正常,然后2b替换1a ,然后3c替换了另外两个,依此类推。

我感觉这是我编写它的工作流程,但无法弄明白

The console log of the array.

HTML:

<div id="icon-wrapper">
            <div id="notes-icon" class="icons glyphicon glyphicon-list-alt"></div>
            <div id="bg-left" class="icons glyphicon glyphicon-chevron-left"></div>
            <div id="bg-right" class="icons glyphicon glyphicon-chevron-right"></div>
            <div id="refresh" class="icons glyphicon glyphicon-refresh"></div>
            <div id="pin" class="icons"></div>
        </div>

        <div id="time-wrapper">
            <div id="time"></div>
            <div id="date"></div>
        </div>

        <div id="input-wrapper">
            <input type="text" id="input-box" placeholder="Create a note">
        </div>

        <div id="notes-wrapper">
        </div>

使用Javascript:

$(document).on('focus', '.note>span', function(e){
        var storedNote = $(this).text();
        var storedNoteIndex = notes.indexOf(storedNote);
        console.log('Stored Note: ' + storedNote);
        console.log('Index of Stored Note: ' + storedNoteIndex);
        console.log(notes)
        $(document).on('keyup', '.note>span', function (e) { //edit notes
            var newNote = $(this).text();
            if(newNote != "" && newNote != " " && newNote.charAt(0) != " ") {
                /*if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {

                }*/
                var newNote = $(this).text();
                notes.splice(storedNoteIndex, 1, newNote);
                chrome.storage.sync.set({'notes':notes});
                console.log(notes);
            }
            else{
                notes.splice(storedNoteIndex, 1);
                chrome.storage.sync.set({'notes':notes});
            }
        });
    })

1 个答案:

答案 0 :(得分:0)

原来这是一个非常愚蠢的错误!我有关键功能作用于所有&#39; .note&gt; span&#39;而不仅仅是焦点的那个......

改变

$(document).on('keyup', '.note>span', function (e) {

$(this).keyup(function (e) {
感觉有点愚蠢!