首先,在这里我要告诉大家的是,js中没有静态变量这一种说法,他不像c语言和Java那么多的功能,js毕竟是一门脚本语言,但是如果想实现c语言中的静态变量应该怎么做呢?
我这边就我自己的实际开发经验而谈,有一种方法大家或许可以一式,就是给你需要的功能设置隐藏域,然后给你的隐藏域一个ID,通过js来控制他的text()方法从而达到一种静态效果。
<!-- 播放切换 -->
<div class="order">
<span hidden="hidden" id="miscstatic">1</span> <!--隐藏域 控制音乐的切换状态 -->
<ul>
<li><span id="choose" class="glyphicon glyphicon-retweet"></span>
<ol>
<li onclick="choose1(1)"> <!-- 循环播放 -->
<span class="glyphicon glyphicon-retweet" id="1" onclick="choose1(1)"></span>
</li>
<li onclick="choose1(2)"> <!-- 随机播放 -->
<span class="glyphicon glyphicon-random" id="2"></span>
</li>
<li onclick="choose1(3)"> <!-- 单曲循环 -->
<span class="glyphicon glyphicon-repeat" id="3"></span>
</li>
</ol>
</li>
</ul>
</div>
这是我做的一个音乐播放器切换的一部分代码,里面我就是用到了隐藏域的概念
//播放切换
function choose1(id){
if(id == 1){ //循环播放
$("#audio").removeAttr('loop','loop'); //不管有没有单曲循环,先做一个移除操作
$("#choose").removeAttr('class','glyphicon glyphicon-retweet');
$("#choose").attr('class','glyphicon glyphicon-retweet');
$("#miscstatic").text('1');
}else if(id == 2){ //随机播放
$("#audio").removeAttr('loop','loop'); //不管有没有单曲循环,先做一个移除操作
$("#choose").removeAttr('class','glyphicon glyphicon-retweet');
$("#choose").attr('class','glyphicon glyphicon-random');
$("#miscstatic").text('2');
}else if(id == 3){ //单曲循环
$("#choose").removeAttr('class','glyphicon glyphicon-retweet');
$("#choose").attr('class','glyphicon glyphicon-repeat');
$("#miscstatic").text('3');
$("#audio").attr('loop','loop');
$(".music_program").animate({width:'100%',opactiy:'show'},1); //进度条(1秒补状态)
}
}
这是我的一种方法,如果大家有更好的方法欢迎在评论区一起交谈。