分配单击的元素's ID作为另一个元素的类名
Assigning clicked element's ID as classname to another element
我正在做一个项目,但我写的代码真的错了:
$('#lart').click(function(){
$("#form3").addClass("lart");
});
$('#posht').click(function(){
$("#form3").addClass("posht");
});
$('#majt').click(function(){
$("#form3").addClass("majt");
});
$('#djatht').click(function(){
$("#form3").addClass("djatht");
});
我想用switch语句来实现它,但我不知道如何为这些情况创建变量。上面的代码无法正常工作,因为当我单击更多选项时,它会添加更多的类,而我不希望它添加更多的类别,只添加其中一个(lart、posht、djatht、majit)。
如果我想让它有两对,比如用posht改变lart,用djatht改变majit,顺便说一句,这就是id的含义:lart=up-posht=downmajt=leftdjatht=right,所以如果我点击向上按钮,然后我点击右键,使类保持向上,它只会再添加一个名为right或left的类!或者如果我点击向下按钮,那么我可以更改右侧或左侧,但会是(向下和左/右或向上和左/左),这可能吗?
不需要switch语句。只需选择所有元素,绑定事件处理程序,并使用ID作为类:
$('#lart, #posht, #majt, #djatht').click(function(){
$("#form3").prop('class', this.id);
});
如果你想确保你没有删除任何其他类,使用这个:
$('#lart, #posht, #majt, #djatht').click(function(){
$("#form3").removeClass('lart posht majt djatht').addClass(this.id);
});
更新:评论中发布的问题解决方案(为了更容易理解,我将使用英文单词作为指示):
var opposites = {
up: 'down',
down: 'up',
right: 'left',
left: 'right'
};
$('#up, #right, #down, #left').click(function() {
$("#form3").addClass(this.id).removeClass( opposites[this.id] );
});
updated:一次只追加一个类。
$("#lart,#posht,#majt,#djatht").click(function() {
$("#form3").attr('class',this.id);
});
不确定为什么要转义引号,但如果一次只想要一个类,请使用。。。
.prop('class', this.id);
而不是CCD_ 1。
我在这里使用data-
属性而不是类名。
$.each(['lart', 'posht', 'djatht', 'majt'], function (idx, id) {
$('#' + id).click(function () {
$('#form3').attr('data-selected', id)
})
})
这样,每次单击其中一个触发器时,都会覆盖以前的值。如果需要,可以在CSS选择器中使用data-
属性:
#form3[data-selected="lart"] {
...
}
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 按我自己的类克隆另一个元素的内容和顺序
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 使用svg和javascript将一个类的元素动画化为另一个类
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 使用数据属性将HTML数据复制到另一个元素
- 如何从另一个带下划线的数组中筛选带元素的数组
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 在类JavaScript选择的另一个元素中选择一个标记元素
- 只要存在,就用另一个元素替换一个元素
- 检查一个元素是否有一个类与另一个类总是返回true
- 初学者反应查询(如何删除一个元素并附加另一个元素)
- 将jquery ui窗口的父元素设置为另一个元素
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- Pixijs将元素附加到另一个元素
- 将SVG元素拖动到另一个SVG元素上
- JavaScript:将输入范围行为链接到另一个元素