Основной проблемой является всплеск события Click. Отключенный элемент Select приводит к тому, что событие Click никогда не достигает родительского элемента.
Чтобы устранить эту проблему, в вашей оболочке должно быть свободное пространство, чтобы пользователь мог щелкнуть элемент Div, чтобы они могли перетащить его.
Рабочий пример:
$(function() {
$(".draggable").draggable();
});
.draggable {
padding: 7px;
display: inline-block;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js">
</script>
<div class="ui-widget">
<div class="ui-widget-content draggable">
<select disabled>
<option value="">Cannot be dragged</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div>
<span class="ui-widget-content draggable">Can be dragged </span>
</div>
</div>
Кроме того, если вы используете jQuery Theming, вам нужно обернуть ui-widget-content
внутри ui-widget
для правильной активации.
Я бы посоветовал использовать дескриптор, если это возможно:
<span class="ui-icon ui-icon-grip-dotted-vertical"></span>
С:
$(".draggable").draggable({
handle: ".ui-icon-grip-dotted-vertical"
});