我有一个名为#status的表单。我想如果你专注于表单输入#statusUpdate,那么应该出现提交按钮#submitStatus。
我做到了:
$("#statusUpdate").focus(function(){
$("#submitStatus").show();
});
$("#statusUpdate").blur(function(){
$("#submitStatus").hide();
});
这很好用,现在我的问题是当#submitStatus出现时,你想点击它,它会在同一个splitsecond中消失,因为#statusUpdate焦点会丢失(模糊)并因此隐藏它。
如何解决这个问题?
答案 0 :(得分:2)
hide
包裹在setTimeout
这样的中
setTimeout(function() { $("#submitStatus").hide(); }, 100)
或使用jQuery delay
(需要向hide()
添加一些参数)
答案 1 :(得分:0)
如果我理解正确,那么一旦您获得对状态更新的关注,您就会寻找隐藏提交按钮并且您想要显示提交按钮的内容。您在代码片段中所做的是,只要关注状态更新框,就会显示提交按钮,但如果您尝试单击它,焦点将会丢失并立即隐藏提交按钮。这不是理想的结果。上面的答案听起来不错,它可以让你有足够的时间点击你需要的按钮。总片段是
$("#statusUpdate").focus(function(){
$("#submitStatus").show();
});
$("#statusUpdate").blur(function(){
setTimeout(function() { $("#submitStatus").hide(); }, 600);
});
为用户进行交互提供约600ms的好处。