javascript - 仅在选择器中可见的项目始终返回 -1

标签 javascript jquery jquery-ui

(此处使用 jquery ui)

fiddle : http://jsfiddle.net/sP3UZ/2677/

目标:当拖动任何蓝色按钮时,另一个按钮应该被隐藏,并且我通过index()计算 dom 上 .user_task 的先前实例。

如果我的选择器中没有 :visible 部分,代码将按预期工作,我会得到我单击的项目之前的总项目,在选择器中添加 :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(例如)

最佳答案

令人讨厌的黑客攻击

$("#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

关于javascript - 仅在选择器中可见的项目始终返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957481/

相关文章:

jquery - 从链接调用 jquery datepicker 并通过 post 调用发送日期

javascript - 为什么此 JavaScript 中的 JSON 结果为 "undefined"

javascript - 图像上方div的HTML定位

javascript - 如何调试几乎立即显示和隐藏的 div

javascript - 选择表格框计数器

jquery-ui - jQuery datepicker 没有出现在 Firefox 中

javascript - Google map 中带有链接的按钮

java - 显示 JSP 内数组列表中的项目列表

javascript - Canvas 限制fabricjs对象的区域

jquery - jqgrid如何选择多条记录?