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 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题