2016-02-21 134 views
-2
<script> 
var myValue = parseInt(12); 
function fontresize(value){ 
var getval = parseInt(value); 
var chngeval = myValue + getval; 
localStorage.setItem("fontset", chngeval); 
    document.getElementById("changefont").style.fontSize = chngeval + "px"; 
} 

window.onload = function(){ 
    var allstorage = localStorage.fontset; 

    if(allstorage != undefined || allstorage == ""){ 
    document.getElementById("changefont").style.fontSize = allstorage + "px"; 
    } 

}; 

<button onClick="fontresize('5')">+</button> 

在是增加我的網頁字體大小的代碼,但問題是它只運行一次當頁面加載我想調用一個函數每一次點擊都可以用java腳本來完成。我怎樣才能調用函數一次點擊JavaScript它只運行一次

+0

檢查這樣https://jsfiddle.net/Ljd6h9x9/代nullundefined? –

回答

1

你不更新的myValue函數內部的值,所以每當單擊該按鈕,計算字體大小將總是12 + 5

更新您fontresize如下:

function fontresize(value) 
{ 
    var getval = parseInt(value), 
     chngeval = myValue = (myValue + getval); 

    localStorage.setItem("fontset", chngeval); 
    document.getElementById("changefont").style.fontSize = chngeval + "px"; 
} 

jsFiddle Demo


順便說一句,你的第一個行parseInt()是多餘的; 12已經是整數,那麼你可以使用:

var myValue = 12; 
+0

當你在* Plunker * http://embed.plnkr.co/vIVrzkFP7fs8ufRs2X7m/上刷新頁面時它是如何工作的,但它不能用於* jsFiddle * http://jsfiddle.net/Ljd6h9x9/show/ –

+0

@ guest271314你應該考慮編輯你的評論,因爲聲稱jsFiddle不允許使用'localStorage'是誤導性的。 FWIW,我的Chrome隱身程序可以在本地存儲(Chrome 48.0.2564.109)上正常運行。 – BenM

+0

@ Mi-Creativity我的答案中的jsFiddle演示完美嗎? http://jsfiddle.net/rgvjwtk7/show/ – BenM

0

Plunker

var fontSize = 0; 
document.getElementById('btn').addEventListener('click', function() { 
    fontresize(fontSize+=5); 
}); 
0

嘗試移動chngevalfontresize,使用+=操作遞增chngeval;還以localStorage

var myValue = 12, chngeval = 0; 

function fontresize(value) { 
    var getval = parseInt(value); 
    chngeval += myValue + getval; 
    localStorage.setItem("fontset", chngeval); 
    console.log(localStorage.getItem("fontset")) 
    document.getElementById("changefont").style.fontSize = chngeval + "px"; 
} 

window.onload = function() { 
    var allstorage = localStorage.fontset; 

    if (allstorage !== null || allstorage === "") { 
    document.getElementById("changefont").style.fontSize = allstorage + "px"; 
    } 

}; 

plnkr http://plnkr.co/edit/9eSDtDEvUxhPjqa2h0Z0?p=preview

相關問題