gridsterを使用してドラッグ可能なグリッドを作成しましたが、gridster.js がclick
イベントをオーバーライドするため、編集可能な DIV が編集できないという問題に遭遇しました。DIVをクリックすると手動で関数をトリガーできるという解決策が見つかりました。focus()
このDIV内のテキストは変更可能ですが、選択できません(マウスやキーボードではできません)。
この動作の原因を知っていますか? 自分のコードで JSFiddle を作成しました ->クリック
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();
});
});