我有一个带有ul li的导航
<nav>
<ul>
<li id="zero"></li>
<li id="one"></li>
<li id="two"></li>
</ul>
</nav>
对于javascript我有事件处理程序来检测我点击的索引。但是,如果当前点击li与前一个点击不同,我该如何编写if条件?
$('li').click(function(){
var indexNum = $(this).index();
if( prevIndexNum != currentIndexNum ){
//do something
}
})
我想这更像是关于如何存储前一个变量值的问题?任何阅读都非常感谢。
答案 0 :(得分:0)
您只需要保存最后一次点击。
var prevIndexNum;
$('li').click(function() {
var indexNum = $(this).index();
if (prevIndexNum !== indexNum) {
console.log('different');
prevIndexNum = indexNum;
} else {
console.log('same');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li id="zero">zero</li>
<li id="one">one</li>
<li id="two">two</li>
</ul>
答案 1 :(得分:0)
添加
var prev
if(indexNum != prev)
prev = $(this).index()
之前。
正如另一个人提到的那样,你真正需要做的就是保存上一次运行代码的价值。
答案 2 :(得分:0)
你需要将当前索引存储在局部变量中,如果编码为真且不相等,则将当前索引移动到我们称之为prevIndexNum的全局变量。我希望它能帮到你很多。
var prevIndexNum;
$('li').click(function(){
var currentIndexNum = $(this).index();
if( prevIndexNum != currentIndexNum ){
//do something if the value are not the same.
} else {
// do something if the value are the same.
}
})