2014-12-13 40 views
3

只有当鼠标位于此<div>内的第一个元素上方时,才会使其可拖动<div>。当鼠标不在第一个元素上时,整个<div>不可拖动。这是我的代码:仅当鼠标悬停在使用jQuery UI的特定元素上时才允许拖动

<div id="containers"> 
    <div id="cont1">foo</div> 
    <div id="cont2">bar</div> 
</div> 

<script> 
    $(document).ready(function() { 
    $("#cont1").mouseenter(function() { 
     $("#containers").draggable("enable"); 
    }); 
    $("#cont1").mouseleave(function() { 
     $("#containers").draggable("disable"); 
    }); 
    }); 
</script> 

当鼠标进入或离开#cont1,有控制台错误:

Uncaught TypeError: undefined is not a function(index):27 (anonymous function)jquery-1.11.0.js:4995 jQuery.event.special.(anonymous function).handlejquery-1.11.0.js:4624 jQuery.event.dispatchjquery-1.11.0.js:4292 elemData.handle 
+0

我想在Windows中实现类似Windows的功能。拖动标题栏时,整个窗口正在拖动,但无法通过拖动内容拖动窗口。 – 2014-12-13 10:29:50

+0

使用'handle'属性 – 2014-12-13 10:30:40

回答

2

您正在寻找的handle选项拖动窗口小部件:

$("#containers").draggable({ 
 
    handle: "#cont1" 
 
});
#containers { 
 
    height: 100px; 
 
    background: grey; 
 
} 
 
#cont1 { 
 
    width: 50px; 
 
    height: 50px; 
 
    background: dodgerblue; 
 
} 
 
#cont2 { 
 
    width: 50px; 
 
    height: 50px; 
 
    background: #eee; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> 
 
<div id="containers"> 
 
    <div id="cont1">foo</div> 
 
    <div id="cont2">bar</div> 
 
</div>

+1

非常感谢!这就是我要找的。 – 2014-12-13 10:39:34

0
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
<div id="containers" style="height: 200px;width: 200px;background-color: blanchedalmond"> 
    <div id="cont1">foo</div> 
    <div id="cont2">bar</div> 
</div> 
<script> 
$(document).ready(function() { 
    $("#cont1").mouseenter(function() { 
     $("#containers").draggable({ disabled: false }); 
    }); 
    $("#cont1").mouseleave(function() { 
     $("#containers").draggable({ disabled: true }); 
    }); 
}); 
</script> 

使用此代码。

相关问题