Javascript 延迟java脚本
我想推迟下面的脚本。我需要它在按键后启动(点击鼠标后,我开始打字)。这是延迟页面加载,我特别想延迟jquery.js。。请参见下面的脚本Javascript 延迟java脚本,javascript,jquery,Javascript,Jquery,我想推迟下面的脚本。我需要它在按键后启动(点击鼠标后,我开始打字)。这是延迟页面加载,我特别想延迟jquery.js。。请参见下面的脚本 <script type="text/javascript" src="scripts/jQuery.js"></script> <script defer type="text/javascript"> $(document).ready(function(){ $("#searchquery").keyup(fu
<script type="text/javascript" src="scripts/jQuery.js"></script>
<script defer type="text/javascript">
$(document).ready(function(){
$("#searchquery").keyup(function(){
$.get("suggest.php", {searchquery: $(this).val()}, function(data){
$("datalist").empty();
$("datalist").html(data);
});
});
});
$(document).ready(function(){
$("#searchquery2").keyup(function(){
$.get("suggest1.php", {searchquery2: $(this).val()}, function(data){
$("datalist").empty();
$("datalist").html(data);
});
});
});
</script>
$(文档).ready(函数(){
$(“#searchquery”).keyup(函数(){
$.get(“suggest.php”,{searchquery:$(this.val()},函数(数据){
$(“数据列表”).empty();
$(“数据列表”).html(数据);
});
});
});
$(文档).ready(函数(){
$(“#searchquery2”).keyup(函数(){
$.get(“suggest1.php”,{searchquery2:$(this.val()},函数(数据){
$(“数据列表”).empty();
$(“数据列表”).html(数据);
});
});
});
延迟脚本的最可靠方法似乎是在运行时将
元素插入页面。如果您要延迟jQuery之类的操作,那么您可能希望在加载DOM后加载它们,而不是在用户执行操作时加载它们,这样通常会更快地加载脚本,并可能为用户提供更好的性能(例如,当他们第一次单击某个东西时,他们不必等到jQuery加载后,才会发生可怕的事情)
下面是一个以与Google Analytics大致相同的方式加载脚本的示例。如果您的浏览器支持我正在使用的JS API和我正在侦听的事件,和console.log()
,然后您应该会看到窗口。当页面加载时,jQuery
被记录为未定义的
,然后在五秒钟后出现一个函数(只要那时jQuery加载!)
免责声明:这里绝对没有做任何事情来确保跨浏览器兼容性。这只是一个推迟脚本的简单演示
<!doctype html>
<html>
<head></head>
<body>
<script>
(function() {
function init() {
loadDeferredScript('http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js');
console.log(window.jQuery);
setTimeout(function() { console.log(window.jQuery); }, 5000);
}
function loadDeferredScript(src) {
var script = document.createElement('script');
script.src = src;
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(script, firstScript);
}
document.addEventListener('DOMContentLoaded', init);
})();
</script>
</body>
</html>
(功能(){
函数init(){
loadDeferredScript('http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js');
log(window.jQuery);
setTimeout(函数(){console.log(window.jQuery);},5000);
}
函数loadDeferredScript(src){
var script=document.createElement('script');
script.src=src;
var firstScript=document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(script,firstScript);
}
document.addEventListener('DOMContentLoaded',init);
})();
我认为.keyup()
不是在用户单击鼠标时触发的,而是在用户释放键盘键时触发的。要收听鼠标单击事件,必须使用.mousedown()
。或者使用.click()
事件。将
放在HTML的末尾。Tiago是的,这是真的,但我必须先用鼠标单击,然后再开始键入。但是如果你不用鼠标单击并开始键入,事件将被触发。你为什么不收听正确的事件?