点击按钮执行一段JS代码,第一次点击正常第二次点击了直接调用了第一次执行JS的结果~何故?
清除缓存没有用。代码如下:<spanid="member_status"style="cursor:pointer;color:#090;"onclick="close_...
清除缓存没有用。
代码如下:
<span id="member_status" style="cursor:pointer;color:#090;" onclick="close_member()">登录已开启</span>
<script type="text/javascript">
function close_member(){
//alert("close");
document.getElementById("member_status").innerHTML="<span style='color:#CCC;font-size:1.0em;' onclick='restore_member()'>登录已关闭</span>"
}
function restore_member(){
//alert("restore");
document.getElementById("member_status").innerHTML="<span style='color:#090;font-size:1.0em;' onclick='close_member()'>登录已开启</span>"
}
</script> 展开
代码如下:
<span id="member_status" style="cursor:pointer;color:#090;" onclick="close_member()">登录已开启</span>
<script type="text/javascript">
function close_member(){
//alert("close");
document.getElementById("member_status").innerHTML="<span style='color:#CCC;font-size:1.0em;' onclick='restore_member()'>登录已关闭</span>"
}
function restore_member(){
//alert("restore");
document.getElementById("member_status").innerHTML="<span style='color:#090;font-size:1.0em;' onclick='close_member()'>登录已开启</span>"
}
</script> 展开
2个回答
展开全部
你的思路是错误的,当第一次执行 close_member 的时候,设置的是 span 的 innerHTML,结果变成
<span...><span...>登录已关闭</span></span>,内层的 span
没有 onclick 事件,导致下一次点击什么都不会发生。
<script type="text/javascript">
function close_member(el){
el.style.color = "#ccc";
el.style.fontSize = "1.0em";
el.innerHTML = "登录已关闭";
el.onclick = function() {
restore_member(this);
};
}
function restore_member(el){
el.style.color = "#090";
el.style.fontSize = "1.0em";
el.innerHTML = "登录已开启";
el.onclick = function() {
close_member(this);
};
}
</script>
<span id="member_status" style="cursor:pointer;color:#090;" onclick="close_member(this)">登录已开启</span>
这样就对了
2013-05-15
展开全部
运行了没什么问题啊,不就是在这两个之间来回切换?
追问
问题是切不回去了。只在IE6生效,火狐和其他浏览器都不正常。不知道哪里出问题了。
追答
哦,刚才也被ie骗了,你这样改innerHTML,改的是这个span的内容,不是他自己。
可以这样
var member_closed = false;
function close_member(){
member_closed = !member_closed;
var m = document.getElementById("member_status");
m.style.color = member_closed ? "#CCC" : "#090";
}
如果有别的需要执行就把? : 换成if else,
简单的说就是根据member_closed来判断要执行什么代码,就不用写两个function了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询