根据单击的元素更改变量
Change variable based on which element is clicked
是否可以更改基于元素的函数内部的变量?在我的情况下,这将完全适用于一种菜单,但我需要两种完全相同的菜单有一点不同——第二次点击处理程序必须加载toggleDrawer,并将$sidebar变量更改为$navbar变量。
/*
Variables
*/
var $sidebar = $('#sidebar'),
$navbar = $('#navbar'),
drawerOpen = false,
/*
Functions
*/
closeDrawer = function() {
drawerOpen = false;
$body.css('overflow','').removeClass('sidebar-open');
$sidebar.removeClass('open');
$sidebar.animate({'right':'-50%'},{duration:300});
$(this).hide();
},
openDrawer = function() {
drawerOpen = true;
$body.addClass('sidebar-open').css('overflow','hidden');
$sidebar.addClass('open');
$sidebar.animate({'right':'0%'},{duration:300});
},
toggleDrawer = function() {
if (drawerOpen) {
closeDrawer();
}else{
openDrawer();
}
},
/*
Bind Events
*/
$document.on('click', '.drawer-toggle-sidebar', function(event){
toggleDrawer();
event.preventDefault();
});
$document.on('click', '.drawer-toggle-navbar', function(event){
toggleDrawer();
event.preventDefault();
});
详细说明上述注释,并显示一个示例:
以下是您传递要打开/关闭的元素的函数:
/*
Functions
*/
closeDrawer = function(drawer) {
drawerOpen = false;
$body.css('overflow','').removeClass('sidebar-open');
drawer.removeClass('open');
drawer.animate({'right':'-50%'},{duration:300});
$(this).hide();
},
openDrawer = function(drawer) {
drawerOpen = true;
$body.addClass('sidebar-open').css('overflow','hidden');
drawer.addClass('open');
drawer.animate({'right':'0%'},{duration:300});
},
toggleDrawer = function(drawer) {
if (drawerOpen) {
closeDrawer(drawer);
}else{
openDrawer(drawer);
}
},
以及您的绑定事件:
/*
Bind Events
*/
$document.on('click', '.drawer-toggle-sidebar', function(event){
toggleDrawer(event.currentTarget);
event.preventDefault();
});
$document.on('click', '.drawer-toggle-navbar', function(event){
toggleDrawer(event.currentTarget);
event.preventDefault();
});
您甚至可以将这两个点击事件合并为一个事件,然后传入currentTarget。
我希望这能有所帮助。
相关文章:
- IF 语句不改变变量的结果
- 为什么不是'这个CanvasJS脚本动态地改变变量
- 在php中改变变量,但在javascript中相同的变量不变
- 为什么Javascript不使用onChange来改变变量?
- 添加一个DOM/SVG元素与d3 javascript库改变变量引用/范围,为什么
- 通过点击按钮改变变量的值
- 在按下键后改变变量
- JQuery改变变量/成本后点击
- Eventlistener点击不改变变量时按下
- 改变变量中的链接
- 不能让函数改变变量
- Javascript滑块动态改变变量
- 通过html按钮改变变量
- Jquery在点击时改变变量
- 不能改变变量
- 为什么我的精灵在不改变变量的情况下加速
- 在javascript的文字函数中改变变量的值
- jQuery用子元素改变变量
- 改变变量&设置日期反应原生
- Ajax文件检查成功后不改变变量