(在这里使用jquery ui)
小提琴: http://jsfiddle.net/sP3UZ/2677/
目标:当拖动任何蓝色按钮时,另一个应该被隐藏,我通过index()计算dom上的.user_task的先前实例。
如果没有我的选择器中的:visible部分,代码就可以正常工作,我得到的是我点击之前的总项目,添加:在选择器中可见它总是返回-1。
$("#sortable").sortable({
items: ".user_task",
appendTo: "body",
helper: "clone",
revert: true,
start: function(event, ui) {
var taskid = ui.item.data("taskid");
$("[data-taskid='" + taskid + "']").not(ui.helper).hide();
var x = $(".user_task:visible").index(ui.item);
$("#counter").text(x);
},
});
我的最终结果应该是,拖动最后一个蓝色按钮,x = 2(例如)
答案 0 :(得分:1)
讨厌的黑客
$("#sortable").sortable({
items: ".user_task",
appendTo: "body",
helper: "clone",
revert: true,
start: function (event, ui) {
var taskid = ui.item.data("taskid");
$("[data-taskid='" + taskid + "']").not(ui.helper).hide();
var $usertasks = $(".user_task");
var all = $usertasks.index(ui.item);
var hidden = $usertasks.slice(0, all).not(':visible').length;
var x = all - hidden;
$("#counter").text(x);
},
});
演示:Fiddle