我无法输入输入

Era*_*ray 8 jquery jquery-ui jquery-ui-sortable

我有一个可以排序的列表.我正在使用带有小部件,鼠标,位置,可排序插件的jQuery UI.

CSS:

#sortable{
    width : 550px;
    display: inline-block;
}
#sortable li, #add {
    width : 550px;
    margin : 5px;
    padding : 5px;
    height : 50px;
}
#sortable li img.social-icon, #sortable li img.drag-cursor {
    width: 40px;
    height : 40px;
    float : left;
}
#sortable li img.social-icon {
    margin-right : 5px;
}
#sortable li img.drag-cursor {
    margin-left : 5px;
    cursor : move;
}
#sortable li input {
    height:40px;
    width:450px;
    line-height: 45px;
    float:left;
}
#add {
    cursor : pointer;
    text-align: center;
    line-height: 45px;
}
.ui-state-highlight { height: 50px; line-height: 50px; }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="dash-wrapper">
    <ul id="sortable">
        <li class="ui-state-default">
            <img src="images/social/twitter.png" class="social-icon" />
            <input type="text" value="textt" name="user-media-link[]" class="user-media-link">
            <input type="hidden" name="social-media-type" value="1">
            <img src="images/drag.png" class="drag-cursor">
        </li>
        <li class="ui-state-default">
            <img src="images/social/facebook.png" class="social-icon" />
            <input type="text" value="textt" name="user-media-link[]">
            <input type="hidden" name="social-media-type" value="1">
            <img src="images/drag.png" class="drag-cursor">
        </li>
        <li class="ui-state-default">
            <img src="images/social/rss.png" class="social-icon" />
            <input type="text" value="textt" name="user-media-link[]">
            <input type="hidden" name="social-media-type" value="1">
            <img src="images/drag.png" class="drag-cursor">
        </li>
    </ul>
    <div class="ui-state-default" onCLick="addNewSocial(); return false;" id="add">ADD</div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本:

$(function() {
    $("#sortable").sortable({
        placeholder: "ui-state-highlight"
    });
    $("#sortable").disableSelection();
});

function addNewSocial() {
    $("#sortable").append('<li class="ui-state-default"><img src="" width="100" height="100" /> <input type="text" value="textt" name="user-media-link[]"><input type="hidden" name="social-media-type" value="1"></li>');
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我无法输入任何内容.我只能通过TAB按钮联系他们.当我点击它们时,没有任何反应.你可以看到一个实例.

我读过与这个问题有关的所有问题,但我找不到正确的答案.

W3 Validation is OK 
There isn't any error on Firebug 
Operation System : Ubuntu 11.04 
Browser : Firefox

Sot*_*ris 21

这是因为你有$("#sortable").disableSelection();.删除它,将正常工作.

http://jsfiddle.net/KbBnu/1/

  • 我找不到我的解决方案的线程,但是在使用`disableSelection()`时有人遇到同样的问题.解决方法可能是将`mousedown`事件绑定到输入并调用`stopPropagation()`,如下所示:`$('input [type ="text"]').mousedown(function(e){e.stopPropagation ();});`这样你就可以保持`disableSelection()`的好处. (6认同)