我有gridster小部件我希望在拖动小部件后有新的col和row 我已经在拖动停止事件中编写了代码,但是默认情况下它只是第一个li,任何人都可以指导我如何使其动态化并获得被拖动的li
这是我的代码
$(function () {
$(".gridster ul").gridster({
widget_margins: [10, 10],
widget_base_dimensions: [140, 140],
animate: true,
draggable:
{
enabled: true,
start: function(e, ui, $widget)
{
log.innerHTML = 'START position: ' + ui.position.top + ' ' + ui.position.left + "<br >" + log.innerHTML;
},
drag: function(e, ui, $widget)
{
log.innerHTML = 'DRAG offset: ' + ui.pointer.diff_top + ' ' + ui.pointer.diff_left + "<br >" + log.innerHTML;
},
stop: function(e, ui, $widget)
{
log.innerHTML = 'Stop position: ' + ui.position.top + ' ' + ui.position.left + "<br >" + log.innerHTML;
var newpos = this.serialize($widget)[0];
alert("New col: " + newpos.col + " New row: " + newpos.row);
}
}
});
答案 0 :(得分:3)
Gridster可拖动停止功能:
stop: function (e, ui) {
var test = ui.$player[0].dataset;
console.log('draggable stop test = ' + JSON.stringify(test));
}
控制台输出:
draggable stop test = {"row":"1","col":"5","sizex":"3","sizey":"7"}
即
var newrow = ui.$player[0].dataset.row;
var newcol = ui.$player[0].dataset.col;
答案 1 :(得分:0)
我认为你的方向正确,当你停止拖动时,你将获得当前的LI位置而不是第一个。
$(function () {
$(".gridster ul").gridster({
widget_margins: [10, 10],
widget_base_dimensions: [140, 140],
animate: true,
draggable:
{
enabled: true,
start: function(e, ui, $widget)
{
log.innerHTML = 'START position: ' + ui.position.top + ' ' + ui.position.left + "<br >" + log.innerHTML;
},
drag: function(e, ui, $widget)
{
log.innerHTML = 'DRAG offset: ' + ui.pointer.diff_top + ' ' + ui.pointer.diff_left + "<br >" + log.innerHTML;
},
stop: function(e, ui, $widget)
{
log.innerHTML = 'Stop position: ' + ui.position.top + ' ' + ui.position.left + "<br >" + log.innerHTML;
var newpos = this.serialize($widget)[0];
alert("New col: " + newpos.col + " New row: " + newpos.row);`// THIS WILL BE YOUR NEW COL and ROW `
}
}
});
答案 2 :(得分:0)
这一切都没有帮助我,但我发现使用:
stop: function(e, ui, $widget) {
console.log(this.player_grid_data.col); //shows the column
console.log(this.player_grid_data.row); //shows the row
console.log(JSON.stringify(this.player_grid_data)); //all the data
}
给了我想要的东西。我使用的是dustmoo fork网格。