2013-08-03 12 views
16

Il campione jQUery UI draggables nome Default dice che:tasti non possono fatta draggables da jQuery UI trascinabili()

attivare la funzionalità trascinabili su qualsiasi elemento DOM.

Ma non sono in grado di farli funzionare sugli elementi di button s.

ho modificato il Default campione simile a questa:

Ho appena cambiato l'elemento div ad un pulsante con 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> 

come posso fare il lavoro funzionalità draggables su un elemento pulsante ?

risposta

41

L'utilizzo di cancel: false sembra funzionare per me.

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

jsfiddle

Credo che senza la cancellazione solo l'evento di default click degli incendi dei pulsanti e con cancel a prevenire l'evento predefinito click.

+0

Grazie! Ha funzionato come un fascino! – diosney

+0

Tuttavia, non può lanciare gli eventi droppabili poiché non è considerato efficacemente come trascinabile di per sé. Hai una soluzione a questo? – diosney

+0

Cosa intendi per "eventi droppable"? Se lo lascio su un widget 'droppable', viene riconosciuto come qualsiasi altro elemento. [fiddle] (http://jsfiddle.net/SirDerpington/wzaJH/1/) – SirDerpington

Problemi correlati