1

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();
    });
});
4

1 に答える 1