我自己写了个 test 函数,思路是计数器器 x==0;当为 0 时,点链接时执行打开 div 的 open 函数,同时 把 x = 0 改成等于 1。当 x 不等 0 时,点击链接就执行 close 函数隐藏 div。
但是不知道为什么只能点击出现 div,再点链接后 div 隐藏不了。
不要JQ,谢谢。
<a href="#" id="btn">点我</a>
<div id="mydiv">隐藏的div</div>
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != "function") {
window.onload = func;
}
else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
function addEvent(obj,type,handle){
try {
obj.addEventListener(type,handle,false);// Chrome、FireFox、Opera、Safari、IE9+
}
catch(e) {
try {
obj.attachEvent("on" + type,handle);// IE8.0及以下
}
catch(e) {
obj["on" + type] = handle;//更早期浏览器
}
}
}
function test() {
var div = document.getElementById("mydiv");
var btn = document.getElementById("btn");
div.style.display = "none";
var x = 0;
if (x==0){
addEvent(btn,"click",open);
}
else{
addEvent(btn,"click",close);
}
function open() {
div.style.display = "block";
x = 1;
}
function close() {
div.style.display = "none";
x = 0;
}
}
addLoadEvent(test);
我改成这样搞定了,但是我想知道为什么用 x 来计数不行?
function test() {
var div = document.getElementById("mydiv");
var btn = document.getElementById("btn");
div.style.display = "none";
addEvent(btn,"click",hhh);
function hhh() {
div.style.display == 'none' ? div.style.display = 'block' : div.style.display = 'none';
}
}
addLoadEvent(test);
javascript怎么实现:链接点第一次显示div,再点隐藏div
答案:1 悬赏:60 手机版
解决时间 2021-03-21 21:27
- 提问者网友:雾里闻花香
- 2021-03-20 21:50
最佳答案
- 五星知识达人网友:不甚了了
- 2021-03-20 22:13
你用什么浏览器测试?
为什么我执行你的代码可以啊!
不好意思,原来我帮你改成:
function test() {
var div = document.getElementById("mydiv");
var btn = document.getElementById("btn");
div.style.display = "none";
var x = 0;
addEvent(btn,"click",clickfun);
function clickfun(){
if(x == 0){
div.style.display = "block";
x = 1;
}else{
div.style.display = "none";
x = 0;
}
}
}
==========================
关于你问x计数为什么不行!
其实不是你的x计数不行
而是你这样判断,
var x = 0;
if (x==0){
addEvent(btn,"click",open);
}
else{
addEvent(btn,"click",close);
}
你这样写的判断,在第一次加载后,你为btn的onclick方法添加了open()方法,之后,你在点击“点我”的时候,btn执行的就是open()方法,跟你的test方法没有脱离了关系
希望能够帮到你!!!
为什么我执行你的代码可以啊!
不好意思,原来我帮你改成:
function test() {
var div = document.getElementById("mydiv");
var btn = document.getElementById("btn");
div.style.display = "none";
var x = 0;
addEvent(btn,"click",clickfun);
function clickfun(){
if(x == 0){
div.style.display = "block";
x = 1;
}else{
div.style.display = "none";
x = 0;
}
}
}
==========================
关于你问x计数为什么不行!
其实不是你的x计数不行
而是你这样判断,
var x = 0;
if (x==0){
addEvent(btn,"click",open);
}
else{
addEvent(btn,"click",close);
}
你这样写的判断,在第一次加载后,你为btn的onclick方法添加了open()方法,之后,你在点击“点我”的时候,btn执行的就是open()方法,跟你的test方法没有脱离了关系
希望能够帮到你!!!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯