如果javascript的else语句点击事件
If else statement for javascript click event
我有两个语句。我要做的是,当有人点击#area_a
,然后隐藏整个#area_b
div ,而没有激活#area_b_textbox
的focusout
。但我已经尝试了不同的代码(我不包括在这里,因为它是不正确的,想要得到你的建议)和正在发生的事情是它是激活focusout
每次我点击#area_a
div。
JQuery基本动作
$("#area_a").click(function() { $("#area_b").hide(); });
$("#area_b_textbox").focusout(function() {$("#area_b_error").show();});
HTML: <div id="area_a"></div>
<div id="area_b">
<input id="area_b_textbox">
<div id="area_b_error"></div>
</div>
谢谢!
您可以使用计时器来解决这个问题。计时器通常很难闻,但我认为这是你最安全的选择。如果你尝试使用鼠标悬停或其他鼠标事件,你可能会遇到键盘导航和激活的问题,或者在触摸界面上缺乏"悬停"事件(我们不能假装这些不再存在)。
像这样:
var timer_kludge = {
start: function(fn) {
this.id = setTimeout(fn, 200);
},
stop: function() {
if(this.id)
clearTimeout(this.id);
this.id = null;
},
id: null
};
$('#area_a').click(function() {
timer_kludge.stop();
$('#out').append('<p>click</p>');
});
$('#area_b_textbox').focusout(function() {
timer_kludge.start(function() {
$('#out').append('<p>textarea focusout</p>');
});
});
$('#area_b_textbox').focusin(function() {
timer_kludge.stop();
});
演示:http://jsfiddle.net/ambiguous/s8kw8/1/
您可能需要稍微使用一下200超时,看看哪种方法最适合您的情况。
为什么不直接添加一个标志来忽略下一个focusout (blur?)事件
ignoreNextFocus = false;
$("#area_a").click(function() { ignoreNextFocus=true; $("#area_b").hide(); });
$("#area_b_textbox").focusout(function() { if(!ignoreNextFocus)$("#area_b_error").show();ignoreNextFocus=false;});
在点击事件上设置标志可能太晚了。如果是这种情况,尝试mousedown事件
这是不可能的,因为当你点击其他地方时,你会自动失去焦点…
你需要做的是取消对#area_a
悬停时的focusout事件的绑定,并在稍后重新绑定它…
$("#area_a").click(function() {
$("#area_b").hide()
}),hover(
function(){
$("#area_b_textbox").unbind("focusout")
},
function(){
$("#area_b_textbox").focusout(function() {$("#area_b_error").show();});
}
)
PS:你的最终目标是什么? 我不确定这是可能的,因为根据定义,如果用户要单击按钮,焦点必须离开#area_b_textbox
相关文章:
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- JavaScript从字符串中删除尾随空格和句点
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- javascript或css:如何隐藏后面跟着句点前缀的任何数字"1.文本”"2.文本“"
- 如何提取与前面带句点(.)的同一字符串匹配的字符串?(仅使用正则表达式)
- 如何在 javascript 中使用正则表达式提取句点 (.) 之后的字符串
- 什么'这个代码只允许数字和句点,这是错误的
- 基于jquery中id(其值中有句点)属性的访问值..
- Regex表示用句点分隔的3个3位数的值
- 如何用逗号和句点分隔JavaScript字符串
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 在节点快速路由中使用句点时获取 403
- SQL查询-替换字段名称中的句点
- 在访问对象属性时,括号表示法比句点表示法慢
- 电子邮件正则表达式不会验证句点后的部分
- 如何删除句点和前一个单词之间的空格
- 咕噜声:带有句点的位置 URL 应用
- 为什么句点不能在 Angular2 选择器中使用
- JS - 用句点分隔字符串以满足特定的字符长度