2012-05-21 52 views
2

新手问题:o)jQuery可拖拽对象列表 - 从开始设置偏移量?

我试图用jQuery Draggable对象生成水平线,并从ul li标签中获取“位置”偏移量。问题是从开始设置alla对象的偏移量。

有人吗?

谢谢!

http://jsfiddle.net/pYZYz/

<script src="http://code.jquery.com/jquery-1.5.2rc1.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script> 

<br> 
<div id="slider"> 
    <ul id="objects"> 
     <li position="300"> 
     1 
     </li> 

     <li position="30"> 
     2     
     </li> 

     <li position="100"> 
     3 
     </li> 

    </ul> 
</div> 

<br> 

<p> 
    Position: 
    <input type="text" id="val" style="border:0; color:#f6931f; font-weight:bold;" /> 
</p> 

$(document).ready(function() 
{  

    $("ul li").draggable 
    ({ 
     containment: "#slider", 
     axis: "x", 
     snap: false, 
     drag: function(event, ui) 
     { 
      $("#val").val(ui.position.left); 

     } 

    }); 

    $("ul li").offset({left: $(this).attr('position')}); 

});​ 

回答

2

您必须使用 “每个” 设置位置。

$(document).ready(function() 
{ 


     $("ul li").draggable 
     ({ 
      containment: "#slider", 
      axis: "x", 
      snap: false, 
      drag: function(event, ui) 
      { 
       $("#val").val(ui.position.left); 

      } 

     }); 

     $('ul li').each(function(index) { 
      $(this).offset({left: $(this).attr('position')}); 
     }); 

    });​ 
+0

谢谢,作品像一个魅力! – Andreas

+0

会很好,如果你投票或接受Stackoverflow的答案...谢谢 – int2000

+0

舒尔,再次感谢! – Andreas