2016-03-28 62 views
2

这是我现在拥有的,但按钮仍然没有调整文本大小。每个按钮的值分别为0.1和-0.1,字体大小目前设置为1em。有任何想法吗?使用javascript使图像作为字体大小调整按钮

window.onload = startup; 

function startup() { 
    var fontButtons = document.getElementsByClassName("fontsizer"); 
    var i; 
    alert(fontButtons.length); 
    for (i = 0; i < fontButtons.length; i++) 
fontButtons[i].onclick = function(){resizeText(this)}; 
} 

function resizeText() { 
    var fontChange; 
    fontChange = parseFloat(objButton.value); 

    if (document.body.style.fontSize == "") { 
     document.body.style.fontSize = "1.0em"; 
    } 

    var currentFontSize; 
    alert("changed"); 
    currentFontSize = parseFloat(document.body.style.fontSize); 
    currentFontSize = currentFontSize+fontChange; 
    document.body.style.fontSize = "currentFontSize+em" 
} 

回答

0

要调用带有参数的函数从onclick,把它放在一个匿名函数所以里面:

fontButtons[i].onclick = resizeText(this);

变为:

fontButtons[i].onclick = function(){resizeText(this)};

此外,请确保您以后运行startup().fontsizer元素已创建。例如window.onload = startup;或这样的事情,你可以运行时:

document.onreadystatechange = function() { 
    if (document.readyState !== 'complete') 
     return; 

    startup(); 
} 

工作小提琴:https://jsfiddle.net/ckn9sLfv/

+0

我会放置在window.onload =函数(){启动();}在整个的JavaScript页面的顶部?对不起,我很新 – Jakeanake

+0

按钮仍然无法正常工作,我的HTML有问题吗? '

' – Jakeanake

+0

另外我把''作为我的方法让它首先在html中加载。 – Jakeanake

0
fontButtons[i].onclick = resizeText; // not (this); 

您需要分配功能,没有返回值(未定义)。