blu*_*blu 8 javascript jquery prototypejs
我们的代码将在用户闲置一段时间后运行.(doStuff重置倒计时)
Prototype中的现有代码:
Event.observe(window, 'mousemove', function() { doStuff(); });
Event.observe(window, 'scroll', function() { doStuff(); });
Event.observe(window, 'click', function() { doStuff(); });
Event.observe(window, 'focus', function() { doStuff(); });
Event.observe(window, 'blur', function() { doStuff(); });
Event.observe(window, 'keypress', function() { doStuff(); });
Event.observe(document, 'mousemove', function() { doStuff(); });
Event.observe(document, 'scroll', function() { doStuff(); });
Event.observe(document, 'click', function() { doStuff(); });
Event.observe(document, 'focus', function() { doStuff(); });
Event.observe(document, 'blur', function() { doStuff(); });
Event.observe(document, 'keypress', function() { doStuff(); });
Run Code Online (Sandbox Code Playgroud)
我想用这个JQuery替换它:
$(document).ready(function() {
$(document).bind("mousemove scroll click focus blur keypress", doStuff);
});
Run Code Online (Sandbox Code Playgroud)
它检查我测试它,但任何人都可以确认我不必进行文档/窗口检查,或者我没有忽略其他任何东西?谢谢.
Dou*_*ner 15
关闭,这是一个完整的端口(已添加window),不需要文档就绪测试:
$([document, window]).bind("mousemove scroll click focus blur keypress", doStuff);
Run Code Online (Sandbox Code Playgroud)
您可以将数组传递给jQuery函数,因此您设置的内容适用于多个项目.在这种情况下,您已经引用了window和document.这是您在一次通话中完成此操作的方法.
但是,我不认为需要所有原始的Prototype代码.例如,focus并且blur不适用于document和click,mousemove并且keypress不需要window.
这可能更符合您的要求:
$(window).bind("focus blur scroll", doStuff);
$(document).bind("click mousemove keypress scroll", doStuff);
Run Code Online (Sandbox Code Playgroud)
不需要DOM已准备就绪:是不需要的DOM准备测试,因为你已经可以访问document并window立即.等待DOM准备就绪是不必要的.