2014-02-27 102 views
0

我開始做一些小的功能和JavaScript的網站調整,但最讓我困擾的是,我不知道如何在函數運行後再次運行JavaScript? 例如,如果我調用一個函數onclick,它將用戶添加到我的網站中顯示的數組中,新用戶將不會顯示,直到頁面刷新? 我該如何解決這個問題?如何在一個函數完成後重新運行javascript

例:

if (!localStorage.myStorage) { 
    // CREATE LOCALSTORAGE 
}else{ 
myArray = JSON.parse(localStorage.myStorage); 
for (var i = 0; i < myArray.length; i++) { 
     if(myArray[i].id === 1){ 
      $(".firstIdContainer").append("<p>" + myArray[i].userName + "</p>"); 
     } 
     if(aUserLogin[i].id === 2) { 
      $(".secondIdContainer").append("<p>" + myArray[i].userName + "</p>"); 
     } 
    } 
} 
$(document).on("click", ".btnRegisterUser", function() { 
    // ADD NEW USER TO LOCALSTORAGE 
} 

如何確保我的我註冊新用戶將被立即顯示出來,通過我的for循環顯示的用戶。

+0

這就是爲什麼你組功能整合到功能。將用戶添加到數組後,調用從數組中生成HTML的函數。 –

+0

上面的例子.. –

回答

0

嘗試創建一個contentUpdate功能復位無論是越來越顯示並根據新的變數再次創建它(這將走在一​​個底部功能來添加用戶,例如)。 DOM中沒有反映出變量更改的原因是DOM沒有抽象出它是如何產生的;它的輸出,並根據它放入後的輸入做了也不會改變自己

1

我愛:

if(!localStorage.myStorage){ 
    // CREATE LOCALSTORAGE 
} 
function doIt(){ 
    var myArray = JSON.parse(localStorage.myStorage); 
    for(var i in myArray){ 
     var apd = '<p>' + myArray[i].userName + '</p>'; 
     if(myArray[i].id === 1){ 
     $(".firstIdContainer").append(apd); 
     } 
     else if(aUserLogin[i].id === 2) { 
     $(".secondIdContainer").append(apd); 
     } 
    } 
    } 
} 
doIt(); 
$('.btnRegisterUser').click(doIt); 
+0

嗯,你的函數和什麼參數是什麼函數? –

+0

你已經運行的功能。這是名字,這些參數是任意的。如果你想得到確切的結果,你將不得不顯示代碼。 – PHPglue

+0

我已經添加了一個我的問題的例子:-) myArray我也在整個代碼中用作全局變量。 –

0

如果你只是想插入新行插入表中你不不需要刷新頁面。

jsfiddle

HTML:

<table id="usertable"> 
    <tr><td>user 1</td></tr> 
</table> 

<input id="newuser"></input> 
<input id="adduser" type="submit"></input> 

JS:

var button = document.getElementById('adduser'); 

button.onclick = function(event) { 


    var user = document.getElementById('newuser').value 

    //add the user to your array here 

    //add a table row 
    var table = document.getElementById('usertable'); 
    var row = table.insertRow(0); 
    var cell1 = row.insertCell(0); 
    cell1.innerHTML = user; 
    event.preventDefault(); 
} 
相關問題