JQuery div标签拖拽排序 flex横向布局

背景:
业务标签需要添加拖拽排序的功能。

场景实例:

<div class="common-tags-area">
<div class="tags-area FlexCol short-text-tags" id="shortTagsContainer">
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">111</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,0)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 0)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 0)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">222</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,1)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 1)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 1)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">333</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,2)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 2)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 2)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">444</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,3)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 3)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 3)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">555</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,4)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 4)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 4)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">666</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,5)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 5)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 5)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">777</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,6)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 6)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 6)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">888</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,7)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 7)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 7)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">999</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,8)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 8)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 8)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="common-tag">
		<div class="tags-container FlexCol" onclick="showEditInput(this)">
			<p class="Fill left-text">000</p>
			<img class="delete-tag" onclick="handleDeleteTag(1,9)" alt="img" src="../../../../NewUI/img/tag_close.svg">
		</div>
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleEditSave(event, 1, 2, 9)" oninput="handleTagInput(this)"			onblur="handleEditSave(event, 1, 1, 9)" autofocus="">
			<span class="text-num">0</span>
		</div>
	</div>
	<div class="add-tag-container FlexCol">
		<div class="add-input-container FlexCol">
			<input class="add-tag-input" type="text" placeholder="请输入10字以内" maxlength="10"			onkeydown="handleSave(event, 1,2)" oninput="handleTagInput(this)" onblur="handleSave(event,1,1)"			autofocus="">
			<span class="text-num">0</span>
		</div>
		<button class="add-btn" onclick="handleShowInput(this)">
			<img alt="img" src="../../../../NewUI/img/add_tag.svg">
		</button>
	</div>
</div>
</div>

显示界面

过程:
查找网上的自实现方法,都会有各种各样的问题。寻找一圈,找到了一个排序插件:
SortableJs插件地址
官方Demo
在官方Demo页面,找到JQuery对应的插件地址图示
集成实现方法:
Html页面引入JS:
在这里插入图片描述
JS绑定拖拽:

    $('.short-text-tags').sortable({
        draggable: ".common-tag", // 区域内需要拖拽的元素
        filter: ".add-tag-container", // 区域内不允许拖拽的元素
        onEnd: function (evt) {
			// 编写拖拽完成时事件
        }
    });

完成后效果:
在这里插入图片描述

当前插件支持更多可配置项:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值