我用gridster构建了一个可拖动的网格,并遇到了我的可编辑 DIV 不可编辑的问题,因为 gridster.js 覆盖了click
事件。我找到了focus()
当我单击 DIV 时可以手动触发该功能的解决方案,现在此 DIV 中的文本是可更改的,但不可选择(不能使用鼠标或键盘)。
你知道是什么导致了这种行为吗?我用我的代码做了一个 JSFiddle -> CLICK
HTML 看起来像:
<div class="gridster" id="frame" style="border:1px solid #cecece;">
<ul>
<li class="widget" data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<div id="testID">Test 1</div>
<div class="drag-handle">HAND</div>
</li>
<li class="widget" data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<div>Test 2</div>
<div class="drag-handle">HAND</div>
</li>
</ul>
</div>
JS看起来像:
$(document).ready(function() {
var gridster = $(".gridster ul").gridster({
max_cols: 2,
widget_margins: [10, 2],
widget_base_dimensions: [140, 40],
resize: {
enabled: true,
axes: ['x']
},
draggable: {
handle: '.drag-handle'
}
}).data('gridster');
$("#testID").click(function(){
gridster.disable();
$(this).attr("contenteditable","true");
$(this).focus();
})
.blur(function(){
gridster.enable();
});
});