Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery切换不';当我尝试设置css时,我无法处理更改_Javascript_Jquery_Toggle - Fatal编程技术网

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')
  • 我制作了一个JSFIDLE来演示:

    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以错误的方式将其舍入(隐藏然后淡出也不起任何作用)。