Jquery可调整大小的textarea

时间:2013-11-06 12:24:14

标签: javascript jquery html css jquery-ui

我正在使用jquery重新调整大小的textarea。一切正常,但在左键单击它不会聚焦textarea。右键单击工作以进行焦点和光标移动,但左键单击不起作用。我想通过左键单击或单击来聚焦textarea。

JSFiddle

HTML: -

<div class="drag-item item-txt txt-static" id="1>" style="position:absolute; width:100px; height:100px; top:50px; left:10px; z-index:50;">
 <textarea style=" width:98px; height:48px;" name="text" id="text">Some text</textarea>

JS: -

$(function () {
$('.drag-item').draggable({
                snap        : true,
                cursor      : "move",
                delay       : 100,
                scroll      : false,
                cancel: "text",
                containment : "parent",
               drag: function(e, ui){
                   //some code
                }
            }).resizable({
                containment : "parent",
                stop: function(e, ui) {
                    var width = ui.size.width;
                    var height = ui.size.height;
                    var hereDrag = this;

                    if($(hereDrag).find('textarea').length > 0){
                        $(hereDrag).find('textarea').css('width', width - 10);
                        $(hereDrag).find('textarea').css('height', height - 10);
                    }
                },
                resize: function(e, ui){
                   //some code
                }
            })

});

CSS: -

div {
    float: left;
}
#droppable {
    width: 150px;
    height: 150px;
    padding: 0.5em;
    float: left;
    margin: 10px;
    border:3px solid;
}

2 个答案:

答案 0 :(得分:1)

问题是因为整个div用于拖动,因此click事件会停止冒泡到textarea。您需要使用handle来进行拖动。试试这个:

$('.drag-item').draggable({
    handle: '.drag-handle',
    // other settings...
})
<div class="drag-item item-txt txt-static">
    <div class="drag-handle"></div>
    <textarea style=" width:98px; height:48px;" name="text" id="text">Some text</textarea>
</div>

请注意,您可以根据需要显示.drag-handle,我只是以速度为榜样。

Example fiddle

答案 1 :(得分:0)

使用这个JS:

$(function () {
    $('.drag-item').draggable({
                    snap        : true,
                    cursor      : "move",
                    delay       : 100,
                    scroll      : false,
                    cancel: "text",
                    containment : "parent",
                    drag: function(e, ui){
                       //some code
                    }
                }).resizable({
                    containment : "parent",
                    stop: function(e, ui) {
                        var width = ui.size.width;
                        var height = ui.size.height;
                        var hereDrag = this;

                        if($(hereDrag).find('textarea').length > 0){
                            $(hereDrag).find('textarea').css('width', width - 10);
                            $(hereDrag).find('textarea').css('height', height - 10);
                        }
                    },
                    resize: function(e, ui){
                       //some code
                    }
                });

    $('.drag-item').click(function(){
        $("#text").focus();
    });

});

在小提琴里为我工作。