Javascript JQuery切换不';当我尝试设置css时,我无法处理更改
我有一个切换按钮,只工作一次。这是脚本的一部分:Javascript JQuery切换不';当我尝试设置css时,我无法处理更改,javascript,jquery,toggle,Javascript,Jquery,Toggle,我有一个切换按钮,只工作一次。这是脚本的一部分: $('#toggle').change(function(){ var mode= $(this).prop('unchecked'); if(mode = true) { $('.container').css('display','block'); $('.container').hide().delay(500).fadeIn(1000); $('#map').css('filt
$('#toggle').change(function(){
var mode= $(this).prop('unchecked');
if(mode = true) {
$('.container').css('display','block');
$('.container').hide().delay(500).fadeIn(1000);
$('#map').css('filter','grayscale(100%)');
} else {
$('.container').css('display','none');
$('.container').delay(500).fadeOut(1000);
$('#map').css('filter','grayscale(0%)');
}
});
If条件的第一部分被激发,而不是Else部分。我不明白为什么。有什么帮助吗?代码中有两个错误。 1) 没有诸如:unchecked这样的属性,您应该使用:checked属性 2) 您编写了if(mode=true)而不是if(mode==true),所以您没有检查等式,而是分配了新值 有正确的代码:
$('#toggle').change(function(){
var mode= $(this).prop('checked');
console.log(mode);
if(mode == true) {
$('.container').css('display','block');
$('.container').hide().delay(500).fadeIn(1000);
$('#map').css('filter','grayscale(100%)');
} else {
$('.container').css('display','none');
$('.container').delay(500).fadeOut(1000);
$('#map').css('filter','grayscale(0%)');
}
});
这里有几个问题@AidOnline01提到了前两个
未选中
不存在,请改用已选中
if(mode=true)
语句为mode
赋值,而不是求相等。如果(模式==true)使用
$('.container').css('display','none')代码>
Hi,请将您的代码发布到jsbin或JSFIDLETRY if(mode.==true)而不是if(mode=true)。@matthias_h不起作用:(@albreik请添加代码的HTML内容以获得更好的理解。不清楚单击时您是在更改CSS还是复选框。请添加更多说明。Hi,尝试使用此:
if($(this.)(“:checked”)){//code here…
对于此类问题,您应该使用jsbin或JSFIDLE。这将增加您获得答案的机会。不,他们应该在问题中使用一个片段。但仅用于工作代码来演示问题。仅对提供的代码进行修改是没有用的,有问题的片段也没有用。OP提供了正确的数量以正确的格式编写代码,以便您提供答案。3.您不需要在已隐藏的内容(通过淡出)后隐藏该内容,因此回调是无用的。请更正OP以错误的方式将其舍入(隐藏然后淡出也不起任何作用)。