我正在尝试延迟keyup jquery事件。要延迟的事件是:
$(document).ready(function(){
$("#leftsettingswindow").on("keyup", "#fontsize2", function(){
var txtVal = this.value;
$('#content').css("font-size", txtVal + "%");
});
});
我试图使用延迟:
$(document).ready(function(){
$("#leftsettingswindow").on("keyup", "#fontsize2", function(){
var txtVal = this.value;
$('#content').delay(2000).css("font-size", txtVal + "%");
});
});
我也试图像这样使用setTimeout
$(document).ready(function(){
$("#leftsettingswindow").on("keyup", "#fontsize2", setTimeout(function(){
var txtVal = this.value;
$('#content').css("font-size", txtVal + "%");}, 3000);
);
});
有人可以向我解释为什么上述拖延战术失败了吗?
答案 0 :(得分:1)
您无法延迟回调功能。而是延迟你想要的。
$(document).ready(function () {
$("#leftsettingswindow").on("keyup", "#fontsize2", function () {
setTimeout(function () {
var txtVal = this.value;
$('#content').css("font-size", txtVal + "%");
}, 3000);
});
});
答案 1 :(得分:0)
试试这个
$(document).ready(function(){
$("#leftsettingswindow").on("keyup", "#fontsize2",
function() {
setTimeout ( function () {
var txtVal = this.value; $('#content').css("font-size", txtVal + "%");
},1000);
});
});
答案 2 :(得分:0)
您无法使用.delay()来显示本机函数调用的执行。它用于在quene中显示后续jquery效果的执行。 "的setTimeout"如果您解决回调问题,可以满足您的需求。
根据您的实现,您尝试获取" fontsize item"的值。 as" #content"字体大小。根本原因是点击事件处理程序注册的参数传递错误。第三个参数是回调处理程序,一旦触发事件就会调用它。你应该传递一个函数对象而不是一个" setTimeout"功能调用。
$("#leftsettingswindow").on("keyup", "#fontsize2", setTimeout(
function(){
var txtVal = this.value;
$('#content').css("font-size", txtVal + "%");
}, 3000)
);
尝试这样实现:
$("#leftsettingswindow").on("keyup","#fontsize2",function(){
var that = this;
var $content = $("#content");
setTimeout(function(){
$content.css('font-size',that.value+"%");
},2000);
});