Jquery sortable - 使用哪个句柄进行排序
Jquery sortable - which handle was used to do the sorting
这是我的带有两个句柄(handleOne 和 handleTwo)的可排序列表。
关于更新,我想知道使用哪个句柄进行排序。这可能吗?
$( "#sortable" ).sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function( event, ui ) {
//Here I want to know which handle was used to do the sorting.
//Handle one or handle two
}
});
<ul id="sortable">
<li class="sortableItem"><div class="handleOne">row 1 cell 1</div> <div class="handleTwo">row 1 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 2 cell 1</div> <div class="handleTwo">row 2 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 3 cell 1</div> <div class="handleTwo">row 3 cell 2</div></li>
</ul>
谢谢!
这应该设置所用元素的句柄 class,handleOne 或 handleTwo。
var handle = event.toElement.className.split(" ")[0];
$( "#sortable" ).sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function( event, ui ) {
//Here I want to know which handle was used to do the sorting.
//Handle one or handle two
var handle = event.toElement.className.split(" ")[0];
$("#result").text(handle);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<ul id="sortable">
<li class="sortableItem"><div class="handleOne">row 1 cell 1</div> <div class="handleTwo">row 1 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 2 cell 1</div> <div class="handleTwo">row 2 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 3 cell 1</div> <div class="handleTwo">row 3 cell 2</div></li>
</ul>
<span id="result"></span>
originalEvent
的 target
会告诉您点击了哪个元素。像这样:
$("#sortable").sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function(event, ui) {
console.log(event.originalEvent.target)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<ul id="sortable">
<li class="sortableItem">
<div class="handleOne">row 1 cell 1</div>
<div class="handleTwo">row 1 cell 2</div>
</li>
<li class="sortableItem">
<div class="handleOne">row 2 cell 1</div>
<div class="handleTwo">row 2 cell 2</div>
</li>
<li class="sortableItem">
<div class="handleOne">row 3 cell 1</div>
<div class="handleTwo">row 3 cell 2</div>
</li>
</ul>
这是我的带有两个句柄(handleOne 和 handleTwo)的可排序列表。
关于更新,我想知道使用哪个句柄进行排序。这可能吗?
$( "#sortable" ).sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function( event, ui ) {
//Here I want to know which handle was used to do the sorting.
//Handle one or handle two
}
});
<ul id="sortable">
<li class="sortableItem"><div class="handleOne">row 1 cell 1</div> <div class="handleTwo">row 1 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 2 cell 1</div> <div class="handleTwo">row 2 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 3 cell 1</div> <div class="handleTwo">row 3 cell 2</div></li>
</ul>
谢谢!
这应该设置所用元素的句柄 class,handleOne 或 handleTwo。
var handle = event.toElement.className.split(" ")[0];
$( "#sortable" ).sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function( event, ui ) {
//Here I want to know which handle was used to do the sorting.
//Handle one or handle two
var handle = event.toElement.className.split(" ")[0];
$("#result").text(handle);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<ul id="sortable">
<li class="sortableItem"><div class="handleOne">row 1 cell 1</div> <div class="handleTwo">row 1 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 2 cell 1</div> <div class="handleTwo">row 2 cell 2</div></li>
<li class="sortableItem"><div class="handleOne">row 3 cell 1</div> <div class="handleTwo">row 3 cell 2</div></li>
</ul>
<span id="result"></span>
originalEvent
的 target
会告诉您点击了哪个元素。像这样:
$("#sortable").sortable({
items: "> .sortableItem",
handle: ".handleOne, .handleTwo",
update: function(event, ui) {
console.log(event.originalEvent.target)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<ul id="sortable">
<li class="sortableItem">
<div class="handleOne">row 1 cell 1</div>
<div class="handleTwo">row 1 cell 2</div>
</li>
<li class="sortableItem">
<div class="handleOne">row 2 cell 1</div>
<div class="handleTwo">row 2 cell 2</div>
</li>
<li class="sortableItem">
<div class="handleOne">row 3 cell 1</div>
<div class="handleTwo">row 3 cell 2</div>
</li>
</ul>