【问题标题】:Trying to make these divs not reset position when I add new one with jquery当我用 jquery 添加新的 div 时,试图让这些 div 不重置位置
【发布时间】:2012-12-25 23:22:46
【问题描述】:

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

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());
        }
    }
});

【问题讨论】:

  • “不重置位置”到底是什么意思?我玩了一点按钮版本,它似乎正在工作,但我不确定“不重置位置”部分是什么意思。 jsfiddle.net/sdDDx
  • @patrick 是的,但它会将所有行创建为创建重复项的新 div。不知道如何让它停止?即重复,所以只需添加文本区域的最后一行。

标签: javascript jquery html css cookies


【解决方案1】:

我认为您不应该删除所有&lt;d&gt; 并每次都重新开始。我对代码进行了一些更改以重用旧的&lt;d&gt;,以便保留它的位置

$(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());
      }
    }
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多