三级菜单拖拽排序,各级互不影响,理论上可以无限级菜单

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI 排序(Sortable) - 门户组件(Portlets)</title>
  <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css">
  <script src="//apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="//apps.bdimg.com/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
  <link rel="stylesheet" href="jqueryui/style.css">
	 <style>


  .portlet {
    margin: 0 1em 1em 0;
    padding: 0.3em;
  }




  </style>
  <script>
  $(function() {
    $( ".column" ).sortable();
    $( ".portlet" )
      .addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" )
      .find( ".portlet-header" )
        .addClass( "ui-widget-header ui-corner-all" )
        .prepend( "<span class='ui-icon ui-icon-minusthick portlet-toggle'></span>");
 
    $( ".portlet-toggle" ).click(function() {
      var icon = $( this );
      icon.toggleClass( "ui-icon-minusthick ui-icon-plusthick" );
      icon.closest( ".portlet" ).find( ".portlet-content" ).toggle();
    });
  });
	  var updateOrderMap={};
	  function getEndOrder(){

		  	  var lv1order=0;
			  var lv2order=0;
			  var lv3order=0;
		  //遍历页面每一个portlet
		  $("#showTable  div  div.portlet").each(function(){
			  var divlv=$(this);
			  var lv=divlv.attr("lv");	
			  if(1==lv){
				  lv1order++;
				  lv2order=0;
				  lv3order=0;
				  divlv.attr("endorder",lv1order);		
				  setUpdateOrderMap(divlv.attr("order"),divlv.attr("endorder"),divlv.attr("id"));
			  }else   
				  if(2==lv){
				  lv3order=0;
				  lv2order++;
				  divlv.attr("endorder",lv2order);	
				  setUpdateOrderMap(divlv.attr("order"),divlv.attr("endorder"),divlv.attr("id"));
			  }else
				  if(3==lv){
				  lv3order++;
				  divlv.attr("endorder",lv3order);	
				  setUpdateOrderMap(divlv.attr("order"),divlv.attr("endorder"),divlv.attr("id"));
			  }
		  });
		  debugger;
		  alert(updateOrderMap);
	  }
			//通过map 设置变更位置的数据的id对应的最新排序									 
	function setUpdateOrderMap(order,endorder,id){
		    if(order!=endorder){
				  updateOrderMap[id]=endorder;
			  }
		  }
  </script>
</head>
<body id="showTable">
 
<div class="column" >
 
  <div class="portlet" lv=1 order=1 endorder=1 id=1>
    <div class="portlet-header">订阅1</div>
    <div class="portlet-content">
		
			<div class="column">
			  <div class="portlet" lv=2 order=1 endorder=1 id=11>
				<div class="portlet-header">-------订阅11</div>
				<div class="portlet-content">
								 <div class="column">
								  <div class="portlet" lv=3 order=1 endorder=1 id=111>
									<div class="portlet-header">------======订阅111</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>

								  <div class="portlet" lv=3 order=2 endorder=1 id=112>
									<div class="portlet-header">------======新闻112</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>

								  <div class="portlet" lv=3 order=3 endorder=1 id=113>
									<div class="portlet-header">------======购物113</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>
								</div>  
										
				</div>
			  </div>

			  <div class="portlet" lv=2 order=2 endorder=1 id=12>
				<div class="portlet-header">------新闻12</div>
				<div class="portlet-content">
								<div class="column">
								  <div class="portlet" lv=3 order=1 endorder=1 id=121>
									<div class="portlet-header">------======订阅121</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>

								  <div class="portlet" lv=3 order=2 endorder=1 id=122>
									<div class="portlet-header">------======新闻122</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>

								  <div class="portlet" lv=3 order=3 endorder=1 id=123>
									<div class="portlet-header">------======购物123</div>
									<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
								  </div>
								</div>  
				 </div>
			  </div>

			  <div class="portlet" lv=2 order=3 endorder=1 id=13>
				<div class="portlet-header">------购物13</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>
			</div>  

		</div>
  </div>
 
  <div class="portlet" lv=1 order=2 endorder=1 id=2>
    <div class="portlet-header">新闻2</div>
    <div class="portlet-content">
		
			<div class="column">
			  <div class="portlet" lv=2 order=1 endorder=1 id=21>
				<div class="portlet-header">------订阅21</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>

			  <div class="portlet" lv=2 order=2 endorder=1 id=22>
				<div class="portlet-header">------新闻22</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>

			  <div class="portlet" lv=2 order=3 endorder=1 id=23>
				<div class="portlet-header">------购物23</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>
			</div>  
	</div>
  </div>
 
  <div class="portlet" lv=1 order=3 endorder=1 id=3>
    <div class="portlet-header">购物3</div>
    <div class="portlet-content">
			<div class="column">
			  <div class="portlet" lv=2 order=1 endorder=1 id=31>
				<div class="portlet-header">------订阅31</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>

			  <div class="portlet" lv=2 order=2 endorder=1 id=32>
				<div class="portlet-header">------新闻32</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>

			  <div class="portlet" lv=2 order=3 endorder=1 id=33>
				<div class="portlet-header">------购物33</div>
				<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
			  </div>
			</div>  
	</div>
  </div>
 
</div>
 

 <button οnclick="getEndOrder();">一个 button 元素</button>
 
</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值