kirillbelash93
@kirillbelash93
Сертифицированный сыч

Как запустить Jquery Sortable по событию touchstart?

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>jQuery UI Sortable - Default functionality</title>
	<link rel="stylesheet" href="https://code.jquery.com/ui/1.14.0/themes/base/jquery-ui.css">
	<style>
		#sortable {
			list-style-type: none;
			margin: 0;
			padding: 0;
			width: 60%;
		}

		#sortable li {
			margin: 0 3px 3px 3px;
			padding: 0.4em;
			padding-left: 1.5em;
			font-size: 1.4em;
			height: 18px;
		}

		#sortable li span {
			position: absolute;
			margin-left: -1.3em;
		}
	</style>
	<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
	<script src="https://code.jquery.com/ui/1.14.0/jquery-ui.js"></script>
	<script src="jquery.ui.touch-punch.min.js"></script>
	<script>
		$(function () {
			$("#sortable").sortable({
				disabled: true
			});
		});

		$("#sortable").on("contextmenu", function (e) {
			e.preventDefault();
		})

		$("#sortable").on("touchstart", () => {
			this.sortable("option", { disabled: false });
		})
	</script>
</head>

<body>

	<ul id="sortable">
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
	</ul>

</body>

</html>


Изначально сортировка заблокирована, по тачстарту она не запускается, как это сделать?
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 2
$(function () {
$("#sortable").sortable({
disabled: true
});

$("#sortable").on("touchstart", function () {
$(this).sortable("option", { disabled: false });
$(this).sortable("refresh");
});
});
Ответ написан
grantur5707
@grantur5707
Full Stack Web Developer
<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>jQuery UI Sortable - Default functionality</title>
	<link rel="stylesheet" href="https://code.jquery.com/ui/1.14.0/themes/base/jquery-ui.css">
	<style>
		#sortable {
			list-style-type: none;
			margin: 0;
			padding: 0;
			width: 60%;
		}

		#sortable li {
			margin: 0 3px 3px 3px;
			padding: 0.4em;
			padding-left: 1.5em;
			font-size: 1.4em;
			height: 18px;
		}

		#sortable li span {
			position: absolute;
			margin-left: -1.3em;
		}
	</style>
	<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
	<script src="https://code.jquery.com/ui/1.14.0/jquery-ui.js"></script>
	<script src="jquery.ui.touch-punch.min.js"></script>
	<script>
		$(function () {
			const $sortable = $("#sortable");

			$sortable.sortable({
				disabled: true
			});

			$sortable.on("contextmenu", function (e) {
				e.preventDefault();
			});

			$sortable.on("touchstart", function () {
				$(this).sortable("option", "disabled", false);
			});
		});
	</script>
</head>

<body>

	<ul id="sortable">
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
		<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
	</ul>

</body>

</html>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы