18

名为的jQUery UI draggables样本Default说:

在任何 DOM 元素上启用可拖动功能。

但我无法让它们在buttons 元素上工作。

我将Default示例修改为如下所示:

我只是将 div 元素更改为一个按钮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>

如何使可拖动功能在按钮元素上工作?

4

1 回答 1

46

使用cancel: false似乎对我有用。

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

jsfiddle

我猜如果没有取消,只会触发按钮的默认点击事件,而取消会阻止默认点击事件。

于 2013-08-03T18:07:45.930 回答