2014-12-13 39 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> 

使用此代碼。

相關問題