我想用gridster构建一个可拖动的网格,并希望contenteditable = true
在每个可拖动的 DIV 中启用。但是目前我只能拖动DIV,似乎gridster.js正在推翻点击事件或其他东西,所以该contenteditable = true
参数无法识别我点击进入DIV。
我试图定义一个可拖动的句柄,以便可以使用该句柄拖动 DIV(这适用于 jQuery UI 可拖动),但这也不起作用。
是否可以拖动 DIV,当用户双击时,他单击的 DIV 可以编辑?
我的 HTML 代码如下所示:
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<div contenteditable="true">Test 1</div>
<span class="drag-handle">HAND</span>
</li>
<li data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<div contenteditable="true">Test 2</div>
<span class="drag-handle">HAND</span>
</li>
<li data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<div contenteditable="true">Test 3</div>
<span class="drag-handle">HAND</span>
</li>
</ul>
</div>
我的 js 看起来像:
$(document).ready(function() {
var grid = $(".gridster ul").gridster({
max_cols: 2,
widget_margins: [10, 2],
widget_base_dimensions: [140, 40],
resize: {
enabled: true,
axes: ['x']
},
draggable: {
handle: '.drag-handle'
}
})
$("li").dblclick(function() {
grid.data('gridster').disable();
$(this + " p").attr("contenteditable","true");
});
});
目前,双击后 gridster.js 将被禁用,但之后内容不可编辑。
编辑:似乎事件有问题focus()
。当我明确注册click()
事件并focus()
在可编辑元素上调用 a 时,我可以编辑文本!