使用可排序项实现轮班点击
Implementing a shift-click with a sortable
我正在为我想添加到web应用程序中的东西编写一个小型概念验证应用程序。我在这里找到了一些以前的代码,并进行了修改以满足我的需求。我有一个可排序的元素,它目前使用ctrl点击和常规点击事件来移动项目。经过长时间的谷歌搜索和搜索,我发布了一个问题,希望有人能给我一些好的建议。请注意,我对编码还比较陌生。
我想实现一个移位点击功能,就像windows一样。当用户shift单击可排序文件中的一个项目时,应选择该项目,然后单击第二个项目(如果相关),然后选择其中的所有项目,以便可以移动它们。
http://jsfiddle.net/pYaRv/1/
代码:
clicked_list = []
$("ul").on('click', 'li', function (e) {
if (e.ctrlKey || e.metaKey) {
$(this).toggleClass("selected");
temp2 = $(this)
if (jQuery.inArray(temp2[0]["innerText"], clicked_list) == -1){
clicked_list.push(temp2[0]["innerText"])
}else{
index = jQuery.inArray(temp2[0]["innerText"], clicked_list)
clicked_list.splice(index, 1)
}
$("#information").text("Ctrl-Clicked " + (temp2[0]["innerText"]))
}
else if(e.shiftKey)
{
temp3 = $(this)
$("#information").text("Shift-Clicked " + (temp3[0]["innerText"]))
}
else
{
if ($(this).hasClass('selected'))
{
$("#information").text("Un-Clicked " + (temp[0]["innerText"]))
$(this).removeClass('selected')
}
else{
temp = $(this)
$("#information").text("Clicked " + (temp[0]["innerText"]))
$(this).addClass("selected").siblings().removeClass('selected');
}
}
}).sortable({
connectWith: "ul",
delay: 150,
revert: 0,
helper: function (e, item) {
if (!item.hasClass('selected')) {
item.addClass('selected').siblings().removeClass('selected');
}
var elements = item.parent().children('.selected').clone();
$("#information").text("Moved " + elements.length + " item(s)")
item.data('multidrag', elements).siblings('.selected').remove();
var helper = $('<li/>');
return helper.append(elements);
},
stop: function (e, ui) {
var elements = ui.item.data('multidrag');
ui.item.after(elements).remove();
}
});
在本周末的研究中,我发现了以下JQuery插件,它正是我需要它做的。
https://github.com/shvetsgroup/jquery.multisortable
相关文章:
- 如何在javascript中实现映射或排序集
- 堆排序实现进行了太多比较
- 使用可排序项实现轮班点击
- 用Javascript实现了带有合并排序算法的反转计数
- JavaScript的原生排序函数是如何实现的
- Go 中的快速排序实现
- 当通过 Struts 填充表时,如何实现 HTML 表排序
- 在 Javascript 中实现合并排序
- jqGrid使用JsonString JsonReader实现服务器端排序分页过滤
- React.js-实现组件排序
- 如何在metro.js中实现图像重新排序
- Javascript快速排序算法实现
- 如何在Yii中实现表行拖放排序
- 在javascript中合并排序的简单实现
- 需要帮助实现jquery指令的排序
- js比较器函数,如何实现降序排序
- 实现html表的数值排序
- 如何实现一个排序,但随机列表与javascript/jquery
- 为什么这个(部分)归并排序实现会破坏堆栈?
- 在javascript中实现搜索结果的多字段排序