【发布时间】:2011-04-21 00:08:17
【问题描述】:
我调用了一个 javascript 函数,该函数使用文本输入框动态构建 <li> 并在其中下拉。下拉列表与 jQuery 的 Draggable 一起工作正常,但我无法编辑输入文本框?
function addField(type){
var html = '';
html += '<li class="ui-state-default">';
if(type == 'text'){
html += '<b>Text Field</b><br />';
html += 'Field Name: <input type="text" name="text" id="text"> ';
html += 'Field Size: <select name="textSize" id="textSize' + fRank + '"><option value="small">Small</option><option selected value="medium">Medium</option><option value="large">Large</option><option value="large2">Large 2 Lines</option><option value="large3">Large 3 Lines</option><option value="large4">Large 4 Lines</option></select>';
}
html += '</li>';
$("#sortableFields").append(html);
$(function() {
$( "#sortableFields" ).sortable({
revert: true
});
$( "#draggable" ).draggable({
connectToSortable: "#sortableFields",
helper: "clone",
revert: "invalid",
cancel: ':input,option'
});
$( "ul, li" ).disableSelection();
});
}
我尝试过取消选项,但没有帮助。
你有什么建议?
【问题讨论】:
-
你用的是什么浏览器?它在 Chrome + Firefox 中对我来说很好用。这可能是您的 css 中某处的 z-index 问题,您有一个不可见的 div 延伸到输入框并阻止您单击它。编辑:啊,我看到你不能在输入框中选择文本,或者让胡萝卜去任何地方,但最后一个字母 - 我想这就是你的问题的意思。
-
删除 disableSelection() 行可以解决问题,并且一切正常(在 FF 和 Chrome 中)。否则,您可能会选择 Pointy 的答案。
标签: javascript jquery html jquery-ui