我对Javascript确实是个新手,但过去两天我一直在努力学习,直到现在一切都解决了。
我试图创建一个隐藏的侧边栏(div),在触发一个按钮后显示,我有另一个基本相同的,但不是打开它,它关闭它。
两个按钮均按下:
<!-- This is one is to open the div -->
<li><a href="javascript:void(0)" class="arrow_class" onClick="openNav()"><i class="fa fa-arrow-right arrow_icon" aria-hidden="true"></i></a></li>
<!-- This is one is to close the div -->
<li><a href="javascript:void(0)" onclick="closeNav()"><i class="fa fa-arrow-left arrow_icon" aria-hidden="true"></i></a></li>
下面是两个按钮的代码(一个用于打开div,另一个用于关闭div)
;function openNav() {
document.getElementById("mySidenav").style.width = "250px";
document.getElementById("main").style.marginLeft = "250px";
};
;function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("main").style.marginLeft = "0";
};
我想要的是只有一个javascript函数,有没有办法让第一个按钮改变它的图标,然后根据图标改变函数?
我知道有一种方法可以用javascript更改图标:
;$('.arrow_class').click(function() {
$('.arrow_icon').toggle('1000');
$("i", this).toggleClass("fa fa-arrow-left fa fa-arrow-right");
});
(div显示;向左箭头;点击,它应该隐藏的div)。(div隐藏;向右箭头;点击时,应显示div)
我希望我能解释清楚
这里是三个功能再次(有没有办法混合这三个在最后一个,使它成为可能的图标变化)?
;function openNav() {
document.getElementById("mySidenav").style.width = "250px";
document.getElementById("main").style.marginLeft = "250px";
};
;function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("main").style.marginLeft = "0";
};
;function openNav_closeNavFunction(){
;$('.arrow_class').click(function() {
$('.arrow_icon').toggle('1000');
$("i", this).toggleClass("fa fa-arrow-left fa fa-arrow-right");
});
};
4条答案
按热度按时间8qgya5xd1#
您可以将参数传递到最后一个函数中,并将其设置为所需的状态。例如:1 =打开,0 =关闭。
这些函数可能如下所示:
现在,a标记中的函数onclick必须有参数(1或0)。
我修改了click事件定义来解除事件绑定,防止to多次通过函数(这样你只声明一个事件)
j5fpnvbx2#
显然,你的代码中有一些实现错误,但是作为一个初学者,你可以在以后学习如何避免它们;)我将用你的代码回答你的问题:
超文本:
联森:
希望这能有所帮助!
rxztt3cl3#
可以使用隐藏和淡入效果
dgtucam14#
您可以使用切换事件和附加2功能(打开和关闭)。
如果你想切换,不要改变CSS,只需要添加删除类-因为你会很难恢复CSS。
CSS:
按钮:
jQuery: