通过拖放将变量传递给事件

时间:2012-03-19 11:47:49

标签: jquery jquery-ui

我有多个可放置区域..

for(j=0; j<2; j++) {
$('#dropElement' + j).droppable( {          
        drop : handleElementDrop
    });

}

function handleElementDrop( event, ui ) { 
}

如何将'j'传递给事件handleElementDrop,以便我可以知道该元素被丢弃到哪个区域??

3 个答案:

答案 0 :(得分:1)

我认为你可以做到

    drop: function(event, ui) {
        alert(this.id);
    }

找到droppable的id(所以你现在使用了哪个droppable)

在这里摆弄http://jsfiddle.net/r5rzX/

答案 1 :(得分:1)

您可以使用jQuery data()函数在元素中传输任何数据(不仅仅是整数,甚至是数组或对象)。

例如:

for(j=0; j<2; j++) {

    $('#dropElement' + j).data('mykey', myData); // set data

    $('#dropElement' + j).droppable( {        
        drop : handleElementDrop
    });
}

function handleElementDrop( event, ui ) { 

    var myData = $(this).data('mykey'); // get data

}

答案 2 :(得分:0)

您可以在handleElementDrop中使用this来删除。我应该将ID存储在数据属性中。但是这对你有用:

for(j=0; j<2; j++) {
    $('#dropElement' + j).droppable( {          
        drop : handleElementDrop
    });

}

function handleElementDrop( event, ui ) { 
    alert(this."id".replace("dropElement",""))
}

http://jsfiddle.net/Aspaq/