jquery - 通过未嵌套的句柄拖动 div

标签 jquery draggable

JQueryUI draggable demo ,我可以看到您可以将句柄附加到 DIV,但如果该句柄未嵌套在可拖动的父 DIV 中,则它不起作用,例如

<script src="jquery-1.5.2.js"></script>
  <script src="js/jquery-ui-1.8.11.custom.min.js"></script>

  <style>    
    #hBlack
    {
        width:55px;
        height:55px;
        background-color: black;
        top:0px;
    }

    #hGreen
    {
        width:25px;
        height:25px;
        background-color: green;


    }
  </style>
  <script language="javascript" type="text/javascript">
    $(function() {
      $("#hBlack").draggable({handle:"#hGreen"});
      });
  </script>
</head>

<body>
  <div id="hBlack">
</div>
<div id="hGreen"></div>

上面的内容并没有使 #hGreen 成为句柄 - 但下面的内容却可以:

<div id="hBlack">
  <div id="hGreen"></div>
</div>

本质上,我试图在另一个 DIV 移动时使一个 DIV 移动 - 我想你可以用 new Position utility 来做到这一点但对于像我这样的新手,我发现它的记录很差

最佳答案

一种可能的解决方案是将 handle 放在内部,但使用 css 将其放置在外部。

Javascript:

$("#draggable").draggable({handle:"#handle"});

HTML:

 <div id="draggable">draggable
<div id="handle">handle</div>
 </div>

CSS:

#draggable{
display: block; 
height: 300px; 
width: 600px; 
background-color: gray;
}
#handle{
display: block; 
height: 50px; 
width: 600px; 
background-color: green;
position: relative;
top: -30px;
}

否则,您可能需要执行类似于多选可拖动的操作。 How do I drag multiple elements at once with JavaScript or jQuery?

关于jquery - 通过未嵌套的句柄拖动 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744068/

相关文章:

javascript - 如何检测 mousedown 上的鼠标右键事件?

javascript - 拖放功能不允许所需的选择器

javascript - 将 Interact.js 与 Angular 项目集成

javascript - 在 Firefox 或 IE 中不触发拖动事件

javascript - 使用对象数组作为源的 JQuery 自动完成的返回值

javascript - 使用 AngularJS 时如何根据选项值而不是索引选择默认选择选项?

jquery - 第二个 Action 在点击时不起作用

php - 使用 php 保存 Jquery 可拖动 DIV 的位置

javascript - 使用 jQuery 创建一个数组而不是从 dom 中获取的值的变量?

javascript - 仅对 img 进行填充