gpt4 book ai didi

jquery-ui - Jquery 可拖动使输入文本字段不可编辑(吞下 onfocus?)

转载 作者:行者123 更新时间:2023-12-01 02:58:44 27 4
gpt4 key购买 nike

我已经编写了代码(如下),以便能够将输入字段拖到另一个输入字段上,但似乎可拖动的燕子 input[text].onfocus .

这会导致问题,即所有可拖动的输入字段都被禁用(firefox)并且单击鼠标不会使它们聚焦。如果我使用 TAB 键关注它们,我可以编辑输入字段,但我必须遍历所有必要的选项卡索引。

所以它似乎可以拖动吞下input[text].onfocus鼠标事件。

有没有办法在绑定(bind)时解决这个问题?

<head>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready( function()
{
$("#drag-table tr td input").draggable({helper: 'clone', revert: 'invalid', cancel: null, cursor: 'move', addClasses: false, containment: $("#drag-table"), handle: 'h2', opacity: 0.8, scroll: true });
$("#drag-table tr td input").droppable({
addClasses: false,
drop: function(ev, ui) {
alert('value='+ ui.draggable.val() + ", text=" + ui.draggable.text() + " and deeper=" + ui.draggable[0].value);
$(this).insertAtCaret(ui.draggable.val());
ui.draggable.val(null);
$(this).trigger('change');
}
});
});

$.fn.insertAtCaret = function (myValue) {
return this.each(function(){
//IE support
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
//MOZILLA / NETSCAPE support
else if (this.selectionStart || this.selectionStart == '0') {
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos)+ myValue+ this.value.substring(endPos,this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
});
};
</script>
</head>
<body>

<table border="1" cellspacing="10" cellpadding="10" id="drag-table">
<tr>
<td><input type="text" name="1x1y" id="id1x1y" value="text" onfocus="alert('onfocus swallowed?');"/></td>
<td><input type="text" name="2x1y" id="id2x1y" onchange="alert('hello');"/></td>
</tr>
<tr>
<td><input type="text" name="1x2y" id="id1x2y" value="next"/></td>
<td><input type="text" name="2x2y" id="id2x2y"/></td>
</tr>
</table>

</body>

最佳答案

将元素包装在 div 或 span 中(取决于哪个有效),然后在其上应用可拖动事件。

关于jquery-ui - Jquery 可拖动使输入文本字段不可编辑(吞下 onfocus?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com