在JQuery中获取拖动项的位置

时间:2011-04-07 16:10:13

标签: javascript jquery jquery-ui

在将项目拖动到新位置时,我想输出项目的新位置。例如

Col = 1 位置= 3

意味着小部件已被移动到第一个col 3rds。

我正在使用此脚本http://net.tutsplus.com/tutorials/javascript-ajax/inettuts/

我认为最好的地方就在下面。但是我试过了 ui.item.index获取新位置,这只是给我值 - 1而不是被拖动对象的位置作为例外。有什么想法吗?

$(settings.columns).sortable({
    items: $sortableItems,
    connectWith: $(settings.columns),
    handle: settings.handleSelector,
    placeholder: 'widget-placeholder',
    forcePlaceholderSize: true,
    revert: 300,
    delay: 100,
    opacity: 0.8,
    containment: 'document',
    start: function (e,ui) {
        $(ui.helper).addClass('dragging');
    },

    stop: function (e,ui) {
        alert("New position: " + ui.item.index());
        $(ui.item).css({width:''}).removeClass('dragging');
        $(settings.columns).sortable('enable');
    }
});

2 个答案:

答案 0 :(得分:4)

查看nettuts网站上的演示:Demo

ui.item已经是一个jQuery对象,所以你可以这样引用它。

列的基于0的索引位置

ui.item.parent().parent().children().index(ui.item.parent())

的基于0的索引位置:

ui.item.parent().children().index(ui.item);

因此,如果您要在第一列中的“欢迎使用iNettuts”下拖动项目,则上面的代码将返回0列(因此第一列)和1项目位置(所以列中的第二项)

答案 1 :(得分:1)

只是为了通知您:脚本当前无法在Internet Explorer 9上运行 - 拖动功能无法正常工作。

我找到了以下“解决方法”:

添加

<meta http-equiv="X-UA-Compatible" content="IE=8">

到你的页面。