我的页面上有两个输入元素,我想检测何时
#aa blur
,是#bb focused
?
HTML:
<input type="text" id="aa" name="aa">
<input type="text" id="bb" name="bb">
JQuery的:
$('#aa').blur(function () {
console.log($('#bb').is(':focus'));
});
<小时/> 虽然它在理论上有效,但输出总是返回
false
。
我知道这是因为#aa的模糊事件总是发生在#bb的焦点事件之前。
感谢任何帮助
答案 0 :(得分:3)
只需使用带有0作为偏移量的setTimeout()来将调用延迟到下一个周期。
$('#aa').blur(function () {
setTimeout(function(){
console.log($('#bb').is(':focus'));
},0);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="aa" name="aa">
<input type="text" id="bb" name="bb">
&#13;
答案 1 :(得分:0)
如何使用全局变量,在blur
#aa
上focus
时更新其值,然后在#bb
var i = 0;
$('#aa').blur(function () {
i=1;
});
$('input:text').not('#aa').blur(function () {//reset when other textboxes are blurred
i=0;
});
$('#bb').focus(function () {
if(i==1){
//it worked!
}
});
事件中使用它:
[Route("")]
public HttpResponseMessage GetFile()
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
try
{
var file = XLGeneration.XLGeneration.getXLFileExigence();
result.Content = new StreamContent(file);
result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
var value = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
value.FileName = "Whatever your filename is";
result.Content.Headers.ContentDisposition = value;
}
catch (Exception ex)
{
// log your exception details here
result = new HttpResponseMessage(HttpStatusCode.InternalServerError);
}
return result;
}