Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Javascript 一个事件上的多个函数不起作用_Javascript_Jquery_Local Storage - Fatal编程技术网

Javascript 一个事件上的多个函数不起作用

Javascript 一个事件上的多个函数不起作用,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,所以我的问题背后的逻辑是: 我有这样一份清单: <ul> <li> <a href="#edit" data-transition="fade" class="editLink" data-kms="1" data-date="2015-06-02">Edit</a> </li> <li> <a href="#edit" data-transiti

所以我的问题背后的逻辑是:

我有这样一份清单:

    <ul>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="1" data-date="2015-06-02">Edit</a>
      </li>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="2" data-date="2015-06-02">Edit</a>
      </li>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="3" data-date="2015-06-02">Edit</a>
      </li>
    </ul>
$('.deleteLink').on('tap', function(){
    setCurrent();
    deleteRun();
});
  $('.deleteLink').on('tap', setCurrent);
然后我想使用此函数从本地存储中删除该条目:

function deleteRun() {
        //Get Current Data
        var currentKms = localStorage.getItem('currentKms');
        var currentDate = localStorage.getItem('currentDate');

        var runs = getRunsObject();
        var i = 0;

        //Loop throuh runs and remove current run from 'runs' object
        while (i < runs.length) {
            //Remove Current Run
            if (runs[i].kms == currentKms && runs[i].date == currentDate) {
                runs.splice(i, 1);
                alert('Run Deleted');
            } else {
                alert('Run cant be deleted!');
            }
            //Save array without current run
            localStorage.setItem('runs', JSON.stringify(runs));
            i++;
        }

        //Show Runs Again
        $('.original').hide();
        showRuns();
        //Preventing form from submiting
        return false;

    }
但是由于某种原因,
setCurrent
没有按预期保存数据,而是将值设置为
undefined

但如果我像这样运行它:

    <ul>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="1" data-date="2015-06-02">Edit</a>
      </li>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="2" data-date="2015-06-02">Edit</a>
      </li>
      <li>
       <a href="#edit" data-transition="fade" class="editLink" data-kms="3" data-date="2015-06-02">Edit</a>
      </li>
    </ul>
$('.deleteLink').on('tap', function(){
    setCurrent();
    deleteRun();
});
  $('.deleteLink').on('tap', setCurrent);
它工作正常,并且实际上将正确的值设置为currentKms和currentDate

那么,如何在同一事件上正确运行这两个函数呢?因为

 function(){
    setCurrent();
    deleteRun();
 });

由于某种原因,在我的情况下不起作用。

根据您的方法
函数
setCurrent
中的此
不引用调用事件的元素

你可以用

call()
方法使用给定的
此值和单独提供的参数调用函数


你可以用

bind()
方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列

代码


按照您的方法,
函数
setCurrent
中的此
不引用调用事件的元素

你可以用

call()
方法使用给定的
此值和单独提供的参数调用函数


你可以用

bind()
方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列

代码


按照您的方法,
函数
setCurrent
中的此
不引用调用事件的元素

你可以用

call()
方法使用给定的
此值和单独提供的参数调用函数


你可以用

bind()
方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列

代码


按照您的方法,
函数
setCurrent
中的此
不引用调用事件的元素

你可以用

call()
方法使用给定的
此值和单独提供的参数调用函数


你可以用

bind()
方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列

代码