无法编辑可拖动div的内容

时间:2014-02-27 17:21:35

标签: javascript jquery html jquery-ui draggable

我有这段代码,我也改编自互联网:

<script>
    $.count = 1;
    $(function() {
        $('#object1')
            .click(function(){
                var htmlData='<div id="'+$.count+'" class="draggable ui-widget-content ui-draggable" style="height:100px; width:100px;';
                htmlData += '"';
                htmlData += '><div id="editable'+$.count+'" style="color:black">Object</div><div id="pos'+$.count+'X"></div><div id="pos'+$.count+'Y"></div></div>';
                $('.demo').append(htmlData);
                $('.draggable').draggable({
                    drag: function(){
                        var offset1 = $(this).offset();
                        var xPos1 = offset1.left;
                        var yPos1 = offset1.top;
                        var element = $(this).attr('id');
                        $('#pos'+element+'X').text('x: ' + xPos1);
                        $('#pos'+element+'Y').text('y: ' + yPos1);
                    }
            })
            .resizable()
            .mousedown(function(ev) {
                 $(this).draggable('disable');
            }).mouseup(function(ev) {
                 $(this).draggable('enable');
            });
            $.count++;
        });
    });

</script>

<div class='demo'></div>

基本上我正在做的是动态制作可拖动的文本框。现在,我正在尝试编辑所创建的任何文本框的div中的文本,但它无法更改,只是单击时突出显示然后当我释放鼠标时,它返回到其原始状态。实际上,我想将此代码http://jsfiddle.net/cSMYG/121/集成到我正在做的事情中。这样做的是编辑div中的文本。

以下是链接:http://jsfiddle.net/VRTf8/1/ 我无法编辑对象的内容

2 个答案:

答案 0 :(得分:0)

我知道这是间接回答你的问题,但你可以指定一个句柄作为可拖动代码的一部分,这样只有给定元素的一部分才会触发拖动事件。

以下是代码JSFiddle Version的简化版:

$('#object1').click(function(){
    var newBox = $("<div>", {id: $.count, class: "mybox"})
        .append($("<div>", {class: "boxtitle"}).html("Object"))
        .append($("<div>", {class: "boxcediv", contenteditable: true}));
    newBox.draggable({handle: ".boxtitle"}).resizable();
    $.count++;
    $('.demo').append(newBox);
});

这会创建一个带有'title'和contenteditable区域的div来输入文本。标题设置为句柄,以便您可以使用该标题拖动框。

希望这至少可以帮助您朝着正确的方向前进。

答案 1 :(得分:-1)

可以肯定的是,您链接到的小提琴包括jQuery UI 。你把它包括在你的页面中吗?