我希望这项工作:
document.addEventListener("keyup", function (e) {
var key = e.which || e.keyCode;
switch (key) {
//enter
case 13:
document.getElementById("messagebtn").click();
break;
//space
case 32:
document.getElementById("messagebtn").click();
break;
//escape
case 27:
document.getElementById("messagebtn").click();
break;
}
});
只有当我的弹出警报出现时:
<a href='#' onclick='message()'>
<img id="english" src="images/english.png">
</a>
<div id="message" class="msg" onclick="location.href = 'index-eng'">
<div>
<p id="messagetext">English is set to the default language.</p>
<a href='index-eng' onclick='message()' id="messagebtn">OK</a>
</div>
</div>
因为现在当我按下其中一个案例时它会显示弹出窗口。
有人知道这是如何运作的吗?
答案 0 :(得分:0)
您可以通过几种不同的方式实现此行为。
选项1:
创建一个简单的标志,默认设置为NSURL *url = [NSURL URLWithString:@"http://user-api.simplybook.me/login/"];
NSURLSession *session = [NSURLSession sharedSession];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"myloginname" forHTTPHeaderField:@"X-Company-Login"];
[request setValue:@"mytokenhere" forHTTPHeaderField:@"X-Token"];
NSURLSessionDataTask *downloadTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (!error) {
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSArray * resultDict =[json objectForKey:@"name"];
NSLog(@"%@", resultDict);
} else {
NSLog(@"%@", error);
}
}];
[downloadTask resume];
,并在显示弹出窗口的函数内将其转换为false
。然后,您可以在事件处理程序中使用此标志来根据是否显示弹出窗口来控制流程:
true
选项2:
作为替代方案,您可以在显示弹出窗口时为var popupShown = false;
function message () {
// ...
popupShown = true;
}
document.addEventListener("keyup", function(e) {
if (popupShown) {
var key = e.which || e.keyCode;
switch (key) {
//enter
case 13:
document.getElementById("messagebtn").click();
break;
//space
case 32:
document.getElementById("messagebtn").click();
break;
//escape
case 27:
document.getElementById("messagebtn").click();
break;
}
}
});
添加事件侦听器,并在弹出窗口关闭时将其删除:
keyup