Javascript 检查以查看当前单击元素的值是否等于上一个单击元素的值
我有一个容器中显示的项目列表,每个容器都有一个下拉列表。容器列表的外观片段: 当我点击按钮时,下拉菜单会显示出来,但是,当我尝试点击任何其他按钮时,dd会停留并且不会隐藏。列表是动态创建的。我想做的是,如果当前单击的元素与先前单击的元素相同,那么隐藏第一个dd菜单 是否有方法检查单击的元素是否等于javascript中先前单击的元素(无jquery) 代码: 这可能吗?Javascript 检查以查看当前单击元素的值是否等于上一个单击元素的值,javascript,Javascript,我有一个容器中显示的项目列表,每个容器都有一个下拉列表。容器列表的外观片段: 当我点击按钮时,下拉菜单会显示出来,但是,当我尝试点击任何其他按钮时,dd会停留并且不会隐藏。列表是动态创建的。我想做的是,如果当前单击的元素与先前单击的元素相同,那么隐藏第一个dd菜单 是否有方法检查单击的元素是否等于javascript中先前单击的元素(无jquery) 代码: 这可能吗? 谢谢您可以使用is函数使用jQuery测试对象相等性。要求1.6或更高 var stuff = $('#stuff'); v
谢谢您可以使用is函数使用jQuery测试对象相等性。要求1.6或更高
var stuff = $('#stuff');
var thing = stuff;
if (stuff.is(thing)) {
// the same
}
因此,对于您的情况,这应该是可行的:
afterRender: function() {
this.el.on('click', function(e) {
var clickedElm = $(e.getTarget());
var secondElm = $(secondClickedElm);
if (clickedElm.is(secondElm)){
// same elements
}
},this);
}
一种方法是动态地向div添加/删除一个类,指示它是否打开。然后单击,您可以切换该类 例如:
let containers = document.getElementsByClassName('container');
for (let i=0; i<containers.length; i++) {
let button = containers.item(i).getElementsByClassName('button')[0];
let menu = containers.item(i).getElementsByClassName('menu' )[0];
button.addEventListener('click', function() {
menu.classList.toggle('open');
});
}
jQuery示例:
使用var
保存上次单击的元素,然后每次单击检查是否单击了相同的元素,然后重置上次单击的
,否则更新上次单击的
var;
$('.container')。在('click',函数(e)上{
如果(此==上次单击){
最后点击=“”;
$(this.children('.menu').hide();
}否则{
lastClicked=这个;
$('.menu').hide();
$(this.children('.menu').show();
}
});代码>
.container{
边框:1px实心#333;
高度:300px;
宽度:200px;
浮动:对;
右边距:20px;
}
.菜单{
显示:无;
}
.按钮{
边框:1px实心#333;
背景:#333;
浮动:对;
高度:20px;
宽度:20px;
}
选择1
选择2
选择1
选择2
选择1
选择2
您可以隐藏所有内容,然后只显示单击的内容,如果已单击,请单击执行切换这正是我的问题,如何检查条件以添加切换类..我在渲染时隐藏所有内容,单击时仅显示一个..抱歉,仅使用javascript,否jquery@sarahthis.el.on('click',函数(e){
在您的代码中,这是jQuery,不是吗?它的extjs/javascript代码不是jQuery,但我正在寻找一个简单的js函数来执行这个函数(不必在extjs中)。我在寻找显示/隐藏类的条件,上面显示的一个不适用于您是否使用jQuery?您可以切换一个类:
let containers = document.getElementsByClassName('container');
for (let i=0; i<containers.length; i++) {
let button = containers.item(i).getElementsByClassName('button')[0];
let menu = containers.item(i).getElementsByClassName('menu' )[0];
button.addEventListener('click', function() {
menu.classList.toggle('open');
});
}
.open {
display: block;
}