jquery input.focus +换行无法输入内容
$('input').focus(function() {
$(this).next("div.description").slideToggle("slow");
$(this).wrap(' <
div > < /div>').select('input'); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<blink>
<input type="text" class="form-text required" value="" size="35" id="editfiled" name="somename" maxlength="128">
<div class="description">
<p>some text</p>
</blink>
之后我无法输入此输入。
我需要如果输入获得焦点,它必须在 div 内突出显示。
$('input').focus(function() {
$(this).next("div.description").slideToggle("slow");
$(this).wrap(' <
div > < /div>').select('input'); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<blink>
<input type="text" class="form-text required" value="" size="35" id="editfiled" name="somename" maxlength="128">
<div class="description">
<p>some text</p>
</blink>
and after that I can't type in this input.
I need that if input gets focus it must be highlighted inside div.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你陷入了一个圈子。
如果输入获得焦点,则将其包装到 div 中。
由于这是标记的重建,因此输入将失去焦点。如果再次单击它,焦点将再次被触发,另一个 div 将包裹在输入周围,依此类推。
您可以这样尝试:
它将wrapper-div存储为输入的data(),因此如果输入已经被包装,该函数将不会执行任何操作。
如果您在某处删除了包裹在输入周围的 div,也不要忘记从 data() 中删除包装器。
(在 Firefox 中,当 SlideToggle 完成时,选择会丢失,也许您需要另一个解决方案来显示/隐藏描述)
You run into a circle.
If the input gets the focus, you wrap it into the div.
As this is a rebuilding of the markup, the input will lose the focus. If you click on it again, focus will be triggered again, another div will be wrapped around the input and so on.
You could try it like that:
It stores the wrapper-div as data() of the input, so if the input is already wrapped, the function would'nt do anything.
Don't forget to remove the wrapper from data() too if you somewhere remove the div wrapped around the input.
(In Firefox the selection is lost when slideToggle is finished, maybe you need another solution to show/hide the description)
它应该看起来像这样(
.select()
调用没有参数):您可以在这里测试。
It should look like this (no parameters to the
.select()
call):You can test it here.