给尼一锤子 2022-03-17 17:46 采纳率: 100%
浏览 51
已结题

jquery动态列表的添加后,实现不了我要的上移下移和删除

问题遇到的现象和发生背景

win11家庭中文版,运行的软件是vscode

问题相关代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="css1.css" />
        <title>列表的增删和移动</title>
        <script src="../jquery.js"></script>
        <script>
            $(function(){
                //显示
                $('span.list-add-show').click(function(){
                    $('div.list-add-area').show();
                    //alert(111);
                });
                //隐藏
                $('.list-add-cancel').click(function(){
                    $('div.list-add-area').hide();
                });
                //上移
                $('.list-up').click(function(){
                    //需移动的li元素
                    var $moveli = $(this).parents('li');
                    //参考位置的li元素
                    var $addrli = $moveli.prev('li');
                    if($addrli.length == 0) 
                        alert('已经到头了,无法上移!');
                    else
                        $addrli.before($moveli);
                });
                //下移
                $('.list-down').click(function(){
                    //需移动的li元素
                    var $moveli = $(this).parents('li');
                    //参考位置的li元素
                    var $addrli = $moveli.next('li');
                    if($addrli.length == 0) alert('已经到底部了,无法下移了!');
                    else
                          $addrli.after($moveli);
                });
                //删除
                $('.list-del').click(function(){
                    //需移动的li元素
                    $(this).parents('li').remove();
                });
                //添加
                $('.list input.list-add-add').click(function(){
                    var txt=$('input.list-add-input')[0];
                    var $addli=$('<li class="list-option"><input class="list-input" type="text" value="'+txt.value+'"><span class="list-btn"><span class="list-up">[上移]</span><span class="list-down">[下移]</span><span class="list-del">[删除]</span></span></li>');
                    if(txt.value != '')
                    $('ul.list-ul').append($addli);
                    else
                        alert('文本框内容不能为空!')
                    txt.value=""
                });
            });
        </script>
    </head>
    <body>
        <form>
            <div class="list">
                <ul class="list-ul">
                    <li class="list-option">
                        <input class="list-input" type="text" value="HTML+CSS">
                        <span class="list-btn">
                          <span class="list-up">[上移]</span>
                        <span class="list-down">[下移]</span>
                        <span class="list-del">[删除]</span>
                        </span>
                    </li>
                    <li class="list-option">
                        <input class="list-input" type="text" value="JavaScript">
                        <span class="list-btn">
                          <span class="list-up">[上移]</span>
                        <span class="list-down">[下移]</span>
                        <span class="list-del">[删除]</span>
                        </span>
                    </li>
                    <li class="list-option">
                        <input class="list-input" type="text" value="c">
                        <span class="list-btn">
                          <span class="list-up">[上移]</span>
                        <span class="list-down">[下移]</span>
                        <span class="list-del">[删除]</span>
                        </span>
                    </li>

                </ul>
                <div class="list-bottom">
                    <span class="list-add-show"><span>添加项目</span></span>
                    <div class="list-add-area list-hide">
                        添加到列表:
                        <input class="list-add-input" type="text" name="list[]">
                        <input class="list-add-add" type="button" value="添加">
                        <input class="list-add-cancel" type="button" value="取消">
                    </div>
                </div>
            </div>
        </form>
    </body>

</html>

css代码

@charset "utf-8";
/* CSS Document */
    <style>
      body{background:#ddd;text-align:center}
      .list{display:inline-block;margin-top:20px;padding:40px;border-radius:8px;background:#fff;color:#333;text-align:left;font-size:13px}
      .list-ul{list-style:none;margin:0;padding:0}
      .list-option{padding:6px 0;}
      .list-input{width:300px;border:1px solid #ccc;padding:4px;font-size:14px;color:#333}
      .list-input:hover{background:#effaff}
      .list-btn span{color:#0065A0;;cursor:pointer}
      .list-btn span:hover{text-decoration:underline}
      .list-btn b{text-align:center;background-color:#D6EDFF;border-radius:6px;width:20px;height:20px;display:inline-block;margin:0 2px;cursor:pointer;color:#238FCE;border:1px solid #B3DBF8;float:left}
      .list-bottom{margin-top:5px}
      .list-add-show{color:#f60;cursor:pointer}
      .list-add-show:before{position:relative;top:1px;margin-right:5px;content:"+";font-weight:700;font-size:16px;font-family:arial}
      .list-add-show span:hover{text-decoration:underline}
      .list-add-area{margin-top:5px}
      .list-add-add{cursor:pointer;margin-left:5px}
      .list-add-cancel{cursor:pointer;margin-left:4px}
      .list-add-input{width:180px;border:1px solid #ccc;padding:4px;font-size:14px;color:#333}
      .list-add-input:hover{background:#effaff}
      .list-tmp{display:none}
      .list-hide{display:none}
    </style>
运行结果及报错内容

img

我的解答思路和尝试过的方法

不知道哪里错了

我想要达到的结果

添加的123后面的三个“上移”,‘下移’,‘删除’用不了

  • 写回答

1条回答 默认 最新

  • 你好!机器人 2022-03-17 17:52
    关注

    用on绑定

    $('body').on('click','.list-up', function(){
                        alert(1)
                        //需移动的li元素
                        var $moveli = $(this).parents('li');
                        //参考位置的li元素
                        var $addrli = $moveli.prev('li');
                        if($addrli.length == 0) 
                            alert('已经到头了,无法上移!');
                        else
                            $addrli.before($moveli);
                    });
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么