2013-08-03 45 views
16

Mẫu jQUery UI draggables tên Default nói rằng:nút không thể làm draggables bởi jQuery UI kéo()

Bật các chức năng kéo vào bất kỳ yếu tố DOM.

Nhưng tôi không thể làm cho chúng hoạt động trên các yếu tố button s.

Tôi đổi Default mẫu trông như thế này:

Tôi chỉ thay đổi phần tử div sang một nút với type="button":

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery UI Draggable - Default functionality</title> 
    <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css"> 
    <script src="../../jquery-1.9.1.js"></script> 
    <script src="../../ui/jquery.ui.core.js"></script> 
    <script src="../../ui/jquery.ui.widget.js"></script> 
    <script src="../../ui/jquery.ui.mouse.js"></script> 
    <script src="../../ui/jquery.ui.draggable.js"></script> 
    <link rel="stylesheet" href="../demos.css"> 
    <style> 
    #draggable { width: 150px; height: 150px; padding: 0.5em; } 
    </style> 
    <script> 
    $(function() { 
     $("#draggable").draggable(); 
    }); 
    </script> 
</head> 
<body> 

<button type="button" id="draggable" class="ui-widget-content"> 
    <p>Drag me around</p> 
</button> 

<div class="demo-description"> 
<p>Enable draggable functionality on any DOM element. Move the draggable object by clicking on it with the mouse and dragging it anywhere within the viewport.</p> 
</div> 
</body> 
</html> 

Làm thế nào tôi có thể làm cho công việc draggables chức năng trên một yếu tố nút ?

Trả lời

41

Sử dụng cancel: false có vẻ phù hợp với tôi.

$(function() { 
    $("#draggable").draggable({ 
     cancel: false 
    }); 
}); 

jsfiddle

Tôi đoán nếu không có sự hủy chỉ sự kiện mặc định nhấp chuột của các đám cháy nút và với cancel bạn ngăn chặn các sự kiện mặc định nhấp chuột.

+0

Cảm ơn! Làm việc như người ở! – diosney

+0

Tuy nhiên, nó không thể ném các sự kiện droppables vì ​​nó không được coi là có hiệu quả như một vật có thể kéo được. Bạn có một giải pháp cho điều này? – diosney

+0

Bạn có ý nghĩa gì bởi "sự kiện có thể bỏ qua"? Nếu tôi thả nó vào một widget 'droppable' nó được nhận ra giống như bất kỳ phần tử nào khác. [fiddle] (http://jsfiddle.net/SirDerpington/wzaJH/1/) – SirDerpington