2

是否可以在鼠标单击 div 的子级并让它拖动父级时启用拖动?

在此示例中,我试图让可拖动对象同时适用于 div 和 select。当您单击选择并尝试拖动时,没有任何反应。

http://jsfiddle.net/Trhs4/5/

<div id="draggable" class="ui-widget-content">
<select>
<option>Drag Me</option>
</select>
</div>

 $(function() {
     $( "#draggable" ).draggable();
 });
4

3 回答 3

1

这是一个例子:LIVE DEMO

它与您的组合框不太兼容,因为它捕获鼠标单击事件以显示其选项,但它正在工作。

$(document).ready(function(){
      var click = false,
      top = null,
      left = null;

    $(document).bind('mousemove', function (e) {
        if (click == true) {
           $('#draggable').css({
             left: e.pageX - left,
             top: e.pageY - top
           });
        }
    });

    $('#draggable').draggable().click(function(e) {
        top = e.pageY - $('#draggable').position().top; 
        left = e.pageX - $('#draggable').position().left;
        click = !click;
        return false;
    });

    $('html').click(function() {
        click = false;
    });
});
于 2013-03-22T06:38:25.543 回答
0

我认为这是不可能的,因为选择如何与不同的浏览器一起工作。您可以使用 UL 和 LI 构建您自己的选择。

或者,您可以在用户可以选择隐藏的选择上方添加 [拖动我]。<--无论如何,这对用户来说更友好。

于 2013-03-21T18:48:01.493 回答
0

我认为这是不可能的,因为事件处理程序。<option>有自己的事件处理程序,因此它可以防止从 JQuery 触发拖放事件。您可以尝试其他对象,例如<ul>and <li>。请看一下这个示例:jquery sample

于 2013-03-21T19:01:03.320 回答