Javascript 我想在不重新加载的情况下重新启动事件。无限次或多次
在美国大约是星期六的10:00到13:00 英格兰似乎在周六18点左右 我认为这个时间是最好的,所以我现在就发布了 我用的是不熟悉的英语句子,所以如果出了问题,我很抱歉 使用下面的代码,我成功地从一个键操作开始,并在一个click事件中停止 但是,除非重新加载屏幕,否则事件不会继续Javascript 我想在不重新加载的情况下重新启动事件。无限次或多次,javascript,Javascript,在美国大约是星期六的10:00到13:00 英格兰似乎在周六18点左右 我认为这个时间是最好的,所以我现在就发布了 我用的是不熟悉的英语句子,所以如果出了问题,我很抱歉 使用下面的代码,我成功地从一个键操作开始,并在一个click事件中停止 但是,除非重新加载屏幕,否则事件不会继续 // "Alt" + "Shift" + "↓" automatic scrolling $(function() { var m; $(windo
// "Alt" + "Shift" + "↓" automatic scrolling
$(function() {
var m;
$(window).keydown(function(e){
if (e.altKey && e.shiftKey && e.keyCode == 40) {
if(!m){
m=setInterval(function(s){
scrollBy(0,s||1);
},35);
}
}
});
$(document).on('click', function() {
//location.reload(true);
clearInterval(m);
});
});
无用的
location.reload(true);
判决,
.on('单击',函数(){
我试着写,但没用,因为每次点击屏幕都会重新加载
如果可能,我希望在不重新加载的情况下停止屏幕,然后重新启动事件并再次停止。如何启用此操作
请教我
操作环境
视窗10
铬64位
您只需在
单击事件处理程序中m=undefined
当您在这样的条件下使用变量时,Javascript将计算它的“真实性”。“falsey”值是未定义的、null、零、空字符串、NaN,当然还有布尔值false。其他所有内容都是真实的,包括setInterval
返回的句柄(在浏览器中为非零整数)您将其分配给m。清除间隔不会重置变量,您需要自己进行重置
我还建议您避免使用jQuery,因为在这种情况下它对您没有多大帮助-您的整个代码段至少可以使用vanilla JS和现代功能重写。例如:
/“Alt”+“Shift”+“↓" 自动滚动
;(() => {
让我
常量scrollBy=()=>{
console.log('称为scrollBy()')
}
window.addEventListener('keydown',e=>{
if(m==undefined&&e.altKey&&e.shiftKey&&e.keyCode==40){
m=setInterval(s=>scrollBy(0,s | | 1),35)
}
})
document.addEventListener('click',()=>{
净距(m)
m=未定义
})
})()
答案肯定,+1。希望你不介意,我补充了一点原因解释。@JaredSmith一点也不介意。谢谢你的帮助!谢谢你的回答。 m=未定义; 只需将这段代码添加到末尾,我就能够用JQuery实现所需的功能。非常感谢。我只是对JS很好奇,所以很抱歉我一点都不了解,但有一些神秘的东西。它似乎是一个“箭头函数”, ; (() => { 我真的不明白这个描述的意思。那是什么?再次谢谢你。谢谢你。@appren\tice如果你还没有得到它就可以了!我先把m=undefined
放在前面,以防万一你没有;)。大多数情况下,箭头函数的工作原理相同,只是看起来与传统函数有点不同。您不需要键入太多内容,因为许多部分都是可选的,例如括号或返回值
。这有点过于简单化,但我想,首先了解它们会非常有效。有关更多信息,请参阅