javascript - 当我用 jquery 添加新的 div 时,试图让这些 div 不重置位置

标签 javascript jquery html css cookies

我已经尝试将代码的 keyup 部分更改为 button 并且我还尝试了一些代码来获取可拖动元素以将其位置存储在 cookie 中但是无济于事。当我将空标签更改为 ready 时,它每次都会重复前面的行。任何帮助将不胜感激。

jsFiddle for original code

jsFiddle for my attempt at a button

HTML

<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<textarea></textarea>
<div id="opt"></div>

CSS

d {
    position: relative;
    left: 0;
    top: 0;
    width: 60px;
    height: 60px;
    background: #ccc;
    float: left;
    font-family: arial;
    font-size: 10px;
}

JavaScript

$(document).ready(function() {
    $("textarea").keyup(splitLine);

    function splitLine() {
        $("#opt").empty();
        var lines = $("textarea").val().split(/\n/g);
        for (var i = 0; i < lines.length; i++) {
            var ele = $("<d>");
            ele.html(lines[i]);
            $("#opt").append($(ele).draggable());
        }
    }
});

最佳答案

我认为你不应该删除你所有的 <d>每次都重新开始。我对代码进行了一些更改以重用旧的 <d>这样它的位置就被保留了

$(document).ready(function () {
  $("textarea").keyup(splitLine);

  function splitLine() {
    //$("#opt").empty();
    var lines = $("textarea").val().split(/\n/g);
    for (var i = 0; i < lines.length; i++) {
      var ele;
      if ($("d:eq(" + i + ")").get(0)) {
        ele = $("d:eq(" + i + ")");
        ele.html(lines[i]);
      } else {
        ele = $("<d>");
        ele.html(lines[i]);
        $("#opt").append($(ele).draggable());
      }
    }
  }
});

关于javascript - 当我用 jquery 添加新的 div 时,试图让这些 div 不重置位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277129/

相关文章:

javascript - ExtJs如何获取HTML元素值?

jquery - Ajax GET url 出现错误 jqxhr

javascript - 完全加载 DOM 后严格执行 jQuery 操作

javascript - 如何在 Dynamics CRM 中操作 HTML-Web 资源

javascript - NodeJS - 异步函数内的代码乱序执行

Javascript 字符串替换不起作用

javascript - AngularJS - 双大括号导致语法错误

javascript - 在 Twitter Bootstrap Accordion 中选择行

javascript - 在 HTML 文件中引用 HTML 文件?

javascript - 仅更改父项的不透明度