【发布时间】:2014-09-19 06:50:56
【问题描述】:
所以我基本上有一个 textarea 并希望能够通过两个按钮使字体大小变大或变小。我已经完成了它并且它有效,但是为了使它有效,我必须将函数 getTextSize 的内容放在 increaseFontSize 和 reductionFontSize 中,我确信有更好的方法。
以下代码发生的情况是,当我单击任一按钮时,de 变量 textSize 未定义。
我知道这可能是一个超级新手的问题,原因是:我是编程的超级新手,但我确实关心性能和良好实践。我可以保持它的工作方式,但我知道必须有其他方式。
谢谢。
<body>
<textarea id="editor"></textarea>
<div class="fontSizeButtons">
<button id="biggerFontBtn">Bigger Font</button>
<button id="smallerFontBtn">Smaller Font</button>
</div>
<script type="text/javascript">
var editor = document.getElementById('editor');
var biggerFont = document.getElementById('biggerFontBtn');
var smallerFont = document.getElementById('smallerFontBtn');
biggerFont.addEventListener('click', increaseFontSize, false);
smallerFont.addEventListener('click', decreaseFontSize, false);
function getTextSize() {
var style = window.getComputedStyle(editor, null).getPropertyValue('font-size');
var textSize = parseFloat(style);
}
function increaseFontSize() {
getTextSize();
editor.style.fontSize = (textSize + 3) + 'px';
}
function decreaseFontSize() {
getTextSize();
editor.style.fontSize = (textSize - 3) + 'px';
}
</script>
【问题讨论】:
-
您可能想查看答案并选择最适合您的答案,然后对您喜欢/不喜欢的答案进行投票/否决... ;)
标签: javascript function scope