有没有办法更改';这';在javascript es6中?
我想知道在JSES6中使用“this”时,是否有办法更改元素的样式。我有以下代码:有没有办法更改';这';在javascript es6中?,javascript,css,ecmascript-6,Javascript,Css,Ecmascript 6,我想知道在JSES6中使用“this”时,是否有办法更改元素的样式。我有以下代码: const mobileSubItems=document.queryselectoral(“.mobile-menu-overlay\uu项”); 打开子菜单=(e)=>{ console.log(this); } 对于(var i=0;i
const mobileSubItems=document.queryselectoral(“.mobile-menu-overlay\uu项”);
打开子菜单=(e)=>{
console.log(this);
}
对于(var i=0;i
测试1
测试2
测试3
是的,您可以使用提供的逻辑。但是由于箭头函数的作用,您正在失去此上下文的功能。相反,请使用属性
var openSubMenu = (e)=> {
e.target.style.maxHeight = '240px';
}
或
如果希望它指向单击的元素,请使用function关键字定义openSubMenu函数
var openSubMenu = function(e) {
this.style.maxHeight = '240px';
}
是的,您可以使用提供的逻辑。但是由于箭头函数的作用,您正在失去此上下文的功能。相反,请使用属性
var openSubMenu = (e)=> {
e.target.style.maxHeight = '240px';
}
或
如果希望它指向单击的元素,请使用function关键字定义openSubMenu函数
var openSubMenu = function(e) {
this.style.maxHeight = '240px';
}
有没有办法更改javascript es6中“this”的css属性
是的,对回调使用普通函数定义,而不是胖箭头定义,这样触发事件集的this
的值就会出现在那里
因为您使用的是胖箭头函数,openSubMenu()
函数中的this
的值不是从调用方获取的,而是从函数声明上下文获取的(this的“词法”值)。如果将openSubMenu()
声明为正常函数,则单击事件将this
设置为导致事件的DOM元素,然后可以使用this
设置其样式
因此,请改为:
function openSubMenu(e) {
console.log(this);
}
人们需要记住,胖箭头函数不仅仅是函数声明的快捷方式。它们还影响此
的值因此,如果希望函数调用方设置的this
的值,则不要使用胖箭头函数,因为胖箭头声明会导致使用不同的this
值。
我想您已经知道了,您也可以使用
e.target
引用触发事件的DOM元素,但是由于您明确询问了如何使这个
工作,这就是我在上面向您展示的内容
有没有办法更改javascript es6中“this”的css属性
是的,对回调使用普通函数定义,而不是胖箭头定义,这样触发事件集的this
的值就会出现在那里
因为您使用的是胖箭头函数,openSubMenu()
函数中的this
的值不是从调用方获取的,而是从函数声明上下文获取的(this的“词法”值)。如果将openSubMenu()
声明为正常函数,则单击事件将this
设置为导致事件的DOM元素,然后可以使用this
设置其样式
因此,请改为:
function openSubMenu(e) {
console.log(this);
}
人们需要记住,胖箭头函数不仅仅是函数声明的快捷方式。它们还影响此
的值因此,如果希望函数调用方设置的this
的值,则不要使用胖箭头函数,因为胖箭头声明会导致使用不同的this
值。
我假设您已经知道,您也可以使用
e.target
引用触发事件的DOM元素,但是由于您明确询问了如何使这个工作,这就是我在上面向您展示的内容。当您指的是常规函数时,不要使用箭头函数<代码>打开子菜单=函数(e){this.style.maxHeight=“none”;}代码>当您指的是常规函数时,不要使用箭头函数<代码>打开子菜单=函数(e){this.style.maxHeight=“none”;}
这是解决问题的另一种方法,但实际上并没有回答如何使用This
引用触发事件的DOM元素的问题。如果在每个类名为“test”的元素旁边都有div,我会说:e.target.closest(.test”).style.maxHeight='240px'?closest是一个jQuery函数,因此您可以像$(e.target)一样使用它。closest(…).css()这是解决问题的另一种方法,但实际上并没有回答如何使用This
引用触发事件的DOM元素的问题。如果在每个类名称为“test”的元素旁边都有div我会说:e.target.nexist(“.test”).style.maxHeight='240px'?closest是一个jQuery函数,所以可以像$(e.target).closest(…).css()那样使用它