Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
onchange创建自动保存函数(javascript)不起作用_Javascript_Arrays_Onchange_Autosave - Fatal编程技术网

onchange创建自动保存函数(javascript)不起作用

onchange创建自动保存函数(javascript)不起作用,javascript,arrays,onchange,autosave,Javascript,Arrays,Onchange,Autosave,工作方式。单击以保存到本地存储: $("check").onclick = function(){ parkArray = [check1,check2,check3,check4,check5]; localStorage.removeItem ("saveArray"); localStorage.setItem("saveArray",JSON.stringify(parkArray)); onchange无法自动保存到本地存储 park

工作方式。单击以保存到本地存储:

    $("check").onclick = function(){
    parkArray = [check1,check2,check3,check4,check5];
    localStorage.removeItem ("saveArray");     
    localStorage.setItem("saveArray",JSON.stringify(parkArray));
onchange无法自动保存到本地存储

    parkArray = [check1,check2,check3,check4,check5];
    parkArray.onchange = function () {
    localStorage.removeItem ("saveArray");     
    localStorage.setItem("saveArray",JSON.stringify(parkArray));
如果我希望阵列在更改时自动保存,有人能给出如何解决此问题的建议吗? 多谢各位


原始链接:

您必须使用回调函数

// initalize
var parkArray = [check1,check2,check3,check4,check5];

// change
changeParkArray([check4,check5,check6,check7,check8], onChangeParkArray);

// change ahain
changeParkArray([check9,check10,check12,check21,check100], onChangeParkArray);


// the function who changes the array
function changeParkArray(newValue, callback){
    parkArray = newValue;
    callback(newValue);
}

// function to run after ParkArray is changed
function onChangeParkArray(data){
    localStorage.removeItem ("saveArray");     
    localStorage.setItem("saveArray",JSON.stringify(data));    
}

不能在jQuery对象上使用onclick函数,因为它用于JavaScript对象,例如document.getElementById'element'。onclick。。。。应该是。单击或。单击

如果您没有正确地定位元素,请检查。。。它是一个类还是一个id

阵列原型中不存在onchange。它只适用于输入和选择之类的DOM对象

您可以对阵列执行的操作是检查阵列parkArray是否与localStorage中的阵列相同

e、 g


您是否可以使用AngularJS?还是你用普通JS来限制?谢谢Lugaru。如果有帮助的话,我愿意使用所有类型的框架。在这种情况下,使用AngularJS,您可以使用$watch或ngChange这样的人员来动态监控更改,而无需任何额外的代码。Xlander,感谢您的反馈。让我来做吧!安德烈亚斯,谢谢你!你的意思是:changeparray[new ck1,newck2,newck3,newck4,newck5]=functiondata{localStorage.removietem saveArray;localStorage.setItemsaveArray,JSON.stringifydata;};不,您使用两个参数调用函数。一个用于新值,另一个用于在值更改为点时要运行的函数。如果新值已更改,请检查它,对吗?非常感谢。我不确定你是否明白我想做的事。我更新了答案。我希望它清楚!
$("#check").click(function(){
  var saveArray = (localStorage.saveArray != undefined) ? JSON.parse(localStorage.saveArray) : [];
  parkArray = [check1,check2,check3,check4,check5];

  saveArray.forEach(function(v, i){
    if(parkArray.indexOf(v) < 0){
      localStorage.removeItem ("saveArray");     
      localStorage.setItem("saveArray",JSON.stringify(parkArray));
    }
  });
});