liu行云流水 2014-04-23 14:03 采纳率: 0%
浏览 931

这是一个菜单移动的操作,但是顺序a向上移动有错误,求指导,请问怎么控制不超出父节点

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


无标题文档 #wrap{margin:20px auto;width: 500px;} #wrap li{list-style:none;padding:5px; font: 12px/1.5 tahoma,arial,"宋体",sans-serif; } //li上移 function UpLi(obj) { var onthis = $(obj).parent(); var getup = $(obj).parent().prev(); $(getup).before(onthis); } //li下移 function DownLi(obj) { var onthis = $(obj).parent(); var getdown = $(obj).parent().next(); $(getdown).after(onthis); } //ui上移 function upul(obj) { var onthis = $(obj).parent(); var getup = $(obj).parent().prev(); $(getup).before(onthis); } //ul下移 function downul(obj){ var onthis = $(obj).parent(); var getdown = $(obj).parent().next(); $(getdown).after(onthis); }


     <ul>
       faf<a href="#" onclick="return upul(this)">上移</a>  <a href="#" onclick="return downul(this);">下移</a>
        <li>顺序A  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a></li>
        <li>顺序B  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a></li>
        <li>顺序C  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a> <a href="#" onclick="return RemoveLi(this);"> 删除</a></li> 
    </ul>


    <ul>gggg<a href="#" onclick="return upul(this)">上移</a>  <a href="#" onclick="return downul(this);">下移</a>
        <li>顺序d  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a></li>
        <li>顺序e  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a></li>
        <li>顺序f  <a href="#" onclick="return UpLi(this);">上移</a>  <a href="#" onclick="return DownLi(this);">下移</a> <a href="#" onclick="return RemoveLi(this);"> 删除</a></li> 
    </ul>



</div>


  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-08 23:04
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
    (通义千问专栏,v2.1.0版本)


    该回答引用通义千问大模型,仅提供参考,不保证完全正确
    要控制菜单项不超出父节点,你需要在移动前检查当前元素是否是第一个或最后一个子元素。如果是第一个元素并且需要向上移动,或者是最后一个元素并且需要向下移动,则不应该执行任何操作。


    以下是修改后的代码:

    //li上移
    function UpLi(obj) {
        var onthis = $(obj).parent();
        if (onthis.prev().length > 0) { // 检查是否有上一个兄弟元素
            var getup = onthis.prev();
            getup.before(onthis);
        }
    }
    
    //li下移
    function DownLi(obj) {
        var onthis = $(obj).parent();
        if (onthis.next().length > 0) { // 检查是否有下一个兄弟元素
            var getdown = onthis.next();
            getdown.after(onthis);
        }
    }
    
    //ui上移
    function upul(obj) {
        var onthis = $(obj).parent();
        if (onthis.prev().length > 0) { // 检查是否有上一个兄弟元素
            var getup = onthis.prev();
            getup.before(onthis);
        }
    }
    
    //ul下移
    function downul(obj){
        var onthis = $(obj).parent();
        if (onthis.next().length > 0) { // 检查是否有下一个兄弟元素
            var getdown = onthis.next();
            getdown.after(onthis);
        }
    }
    

    这段代码中添加了 if 语句来检查当前元素的上一个或下一个兄弟元素是否存在。如果不存在,则不会执行移动操作。这样可以确保菜单项不会超出父节点。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作