javascript - 为什么我不能向上或向下移动 "append data"?

标签 javascript jquery css

$(document).ready(function () {
    var $selected = $();
    var $itemLv1  = $("#cList [class^=lv]");
    $itemLv1.on('click', function (e) {
        $selected = $(this);
        var x = $(this).toggleClass('clicked');
        $("[class^=lv]").not(x).removeClass("clicked child").addClass("child");
        // x.siblings().removeClass('clicked');
        e.stopPropagation();
    });
    $("#moveUp").on('click', function () {
        $selected.insertBefore($selected.prev("[class^=lv]"));
    });
    $("#moveDown").on('click', function () {
        $selected.insertAfter($selected.next("[class^=lv]"));
    });
    var cList = document.getElementById("cList");
    var divLv1 = document.createElement("div");
    divLv1.className = 'lv1';
    var content = document.createTextNode("This is a test");
    divLv1.appendChild(content);
    cList.appendChild(divLv1);
});
.clicked{
    color: red !important;
}
.child{
    color:black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button type="button" id="moveUp">Up </button> / 
<button type="button" id="moveDown">Down</button>
<div id="cList">
    <div class="lv1">AAAAAA</div>
    <div class="lv1">BBBBBB</div>
    <div class="lv1">CCCCCC</div>
    <div class="lv1">DDDDDD</div>
</div>

我可以向上或向下移动原始数据。 但是,当我使用 ajax 获取数据并在其下追加具有相同类的数据(“这是测试”)时。

我不能移动它。

我是不是遗漏了什么?

最佳答案

由于元素是动态创建的,因此您需要使用 on()像这样的事件处理程序:

$(document).on('click', '#cList [class^=lv]', function (e) {
   $selected = $(this);
   var x = $(this).toggleClass('clicked');
   $("[class^=lv]").not(x).removeClass("clicked child").addClass("child");
   // x.siblings().removeClass('clicked');
   e.stopPropagation();
});

关于javascript - 为什么我不能向上或向下移动 "append data"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892158/

相关文章:

html - CSS box-radius 破坏了 firefox 上的 box-shadow inset 效果

javascript - Three.js 中的 BoxBufferGeometry 与 BoxGeometry 有什么区别?

Javascript 变量的 “Value” 属性未出现在 Intellisense Insted 显示值中

Jquery在包含html字符串的变量中添加类

javascript - Jquery 找到子元素的父元素,然后将操作应用于初始父元素的另一个子元素

html - 使用 CSS 更改文本选择颜色?

javascript - 用省略号 (...) 替换 excel 文本

javascript - 仅在不存在但没有 document.write 的情况下加载 jQuery

javascript - 如何在按下 'up' 或 'down' 箭头键时让 Fancybox 切换到下一个或上一个画廊?

javascript - 将 jQuery 变成 Angular,修复侧边栏不起作用(?)