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 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看