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关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列
代码