JQuery/JavaScript:启用和禁用div

JQuery/JavaScript:启用和禁用div,javascript,jquery,Javascript,Jquery,这是我的代码示例: $( "#new_warehouse" ).onClick(function() { $('.js-dependent-fields:hidden').children().prop('disabled', true); }); 如果style=“display:none;”“,它会在我的js相关字段div的所有子字段中添加一个“disabled”。当js依赖字段div变为可见时,我如何还原它 非常感谢 您可以使用:visible伪类选择器反转效果。但为了满足您的需要,

这是我的代码示例:

$( "#new_warehouse" ).onClick(function() {
  $('.js-dependent-fields:hidden').children().prop('disabled', true);
});
如果
style=“display:none;”“
,它会在我的js相关字段div的所有子字段中添加一个“disabled”。当js依赖字段div变为可见时,我如何还原它


非常感谢

您可以使用:visible伪类选择器反转效果。但为了满足您的需要,您可以这样使用:

$('.js-dependent-fields:hidden').children().prop('disabled', 
   $('.js-dependent-fields').is(':hidden')//sets true if hidden else false
);

也许更合适的代码是

    $( "#new_warehouse" ).onClick(function() {
        $('.js-dependent-fields').children().prop('disabled',  
           $('.js-dependent-fields').is(':hidden') ? 
             true : false );
     });

您应该将
.on()
侦听器与
一起正确使用。在
prop()
方法中,使用回调函数单击()
事件:

$( "#new_warehouse" ).on('click', function() {
   $('.js-dependent-fields').children().prop('disabled', function(){
      return $(this).is(':hidden');
   });
});

需要注意的是,目标元素是一个类选择器,因此它将返回一个集合,因此,我们必须查找带有
$(this)
的每个元素,并检查它是否是
:visible

您只需传递
$('.js依赖字段')。is(':hidden')
不需要三元运算符。
$('.js依赖字段')。is(':hidden')
就足够了?这几乎就是我所需要的。有一件奇怪的事情:出现的div(其中有一个select表单)被禁用(因为它是一个子项)。只有再次单击禁用字段,它才会被激活。我应该更改什么?
.on('change',function())
是为我做的!@Harakiri很高兴看到这一点,这种方式对你有效。实际上,很难理解你的最终结果,因为工作示例就在那里,我建议你在问题中添加一个小测试用例以更好地理解。最后,欢迎你。我如何更改代码才能工作对于所有表单,而不仅仅是id为“#new_warehouse”?因为每个元素的id都是唯一的,所以您可以添加一个公共类名来访问所有目标元素,就像:
$('form>.targetEl')。children()…