我想要实现的是当我触发数字2(输入)时切换TRIGGER1的颜色类。 要查看我的问题,请先单击TRIGGER1然后单击TRIGGER2。该框已关闭,但第一个触发器的类不会更改
HTML
<button id="trigger1" class="color-front" >TRIGGER1</button>
<input id="trigger2" type="text" placeholder="TRIGGER2">
<div id="boxToOpenOnTrigger" class="color-back elem-hide"></div>
CSS
.elem-hide{ display: none; }
.color-back{ background-color: #3d3d2d; }
.color-front{ background-color: white; }
#boxToOpenOnTrigger{ width: 300px; height: 300px; }
的jQuery
$('#trigger1').on('click', function(){
$( this ).removeClass('color-front');
$( this ).toggleClass('color-back');
$( "#boxToOpenOnTrigger" ).toggleClass('elem-hide');
});
$('#trigger2').on('click', function(){
if ( $("#trigger1").hasClass( "color-back" ) ) {
$( this ).removeClass( "color-back" );
$( this ).addClass( "color-front" );
}
$( "#boxToOpenOnTrigger" ).addClass('elem-hide');
});
我希望你理解我,我的英语还不是很好:/
答案 0 :(得分:3)
JS
$('#trigger1').on('click', function(){
$( this ).removeClass('color-front');
$( this ).toggleClass('color-back');
$( "#boxToOpenOnTrigger" ).toggleClass('elem-hide');
});
$('#trigger2').on('click', function(){
var trigger1=$("#trigger1");
if (trigger1.hasClass( "color-back" ) ) {
trigger1.removeClass( "color-back" );
trigger1.addClass( "color-front" );
}
$( "#boxToOpenOnTrigger" ).addClass('elem-hide');
});
请注意,您在onclick事件
this
中使用了trigger2
,该事件引用了trigger2
答案 1 :(得分:0)
我不知道我是否理解你的问题,但我会尽力回答。
当您点击trigger2时,您想要将类“color-font”添加到触发器1?
如果是这样的话,那就这样做:
$('#trigger2').on('click', function(){
if ( $("#trigger1").hasClass( "color-back" ) ) {
$( this ).removeClass( "color-back" );
$("#trigger1").addClass( "color-front" );
}
$( "#boxToOpenOnTrigger" ).addClass('elem-hide');
});