我正在创建一个隐藏的联系表单,当鼠标位于元素上方时会出现。这很简单,我通过这样做实现了它:
$(document).ready(function(){
$(function (){
$("#contact_1").hover(
function(){ $(this).stop(true,false).animate({right: 0}, 500); },
function(){ $(this).stop(true,false).animate({right: -218}, 500); });
});
});
现在的问题是,当用户查看输入元素或textarea并开始编写他们的详细信息时,他们可能会将鼠标移出容器(很可能会这样)。
在这种情况下如何防止表单隐藏?
我想在“悬停”函数中添加一些条件函数(if / else),但如何获取当前文本光标位置?
联系表单(#contact_1)包含ID中的4个元素:#cf_name,#cf_email,#cffphone,#cf_text
请注意:我不想让用户不必点击“显示/隐藏”按钮
* mabye这是一个简单的查询,但我无法在任何地方找到明确的答案。
感谢
------------------------------
SOLUTION:
每个输入都有onfocus / onblur动作:
<input type="text" id="cf_name" class="text" name="name" onfocus="allowcfhide=false;" onblur="allowcfhide=true;" />
悬停脚本已修改:
var allowcfhide=true;
$(document).ready(function(){
$(function (){
$("#contact_1").hover(
function(){ if (allowcfhide) $(this).stop(true,false).animate({right: 0}, 500); },
function(){ if (allowcfhide) $(this).stop(true,false).animate({right: -218}, 500); });
});
});
答案 0 :(得分:0)
在动画开头有一个标志会导致它返回。当任何输入获得焦点时,设置标志。