gpt4 book ai didi

javascript - 如何将值从输入字段传递给 JavaScript 闭包

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:01 24 4
gpt4 key购买 nike

我是 JavaScript 原型(prototype)和闭包的新手,以下是我的代码:

function setFontSize(size) {        
return function() {
console.log("font size: "+size+ " setFontSize()");
document.body.style.fontSize = size + 'px';
};
}
function setFontSizeInput(ipval) {
console.log("font size ipval : "+ipval);
var fontsizeIP= setFontSize(ipval);
}
window.onload = function() {
var fontsize18 = setFontSize(18);
var fontsize14 = setFontSize(14);
var fontsize16 = setFontSize(16);
document.getElementById('size-18').onclick = fontsize18;
document.getElementById('size-14').onclick = fontsize14;
document.getElementById('size-16').onclick = fontsize16;
}

onkeyup 事件中,我正在调用 setFontSizeInput,当用户在输入字段中输入值时,我想更改字体大小,所以我创建了 setFontSize( ipval) 并传递了输入字段值,但它没有反射(reflect)。知道我的代码有什么问题吗?

For JSFiddle Click

最佳答案

修改你的代码如下:

function setFontSizeInput(ipval) {
console.log("font size ipval : " + ipval);
setFontSize(ipval)();
}

注意 ()setFontSize(ipval) 之后。它们是必需的,因为 setFontSize 返回函数。

演示:http://jsfiddle.net/WxKJs/2/

我还建议在更改字体大小之前使用一些小的延迟,以避免在键入 12 时字体从 1 闪烁到 12:

function setFontSizeInput(ipval) {
delay(setFontSize(ipval));
}

var delay = (function() {
var delay = 100, timer;
return function(callback) {
if (timer) clearTimeout(timer);
timer = setTimeout(callback, delay);
};
})();

演示:http://jsfiddle.net/WxKJs/3/

关于javascript - 如何将值从输入字段传递给 JavaScript 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com