Это мой пример кода:
$( "#new_warehouse" ).onClick(function() {
$('.js-dependent-fields:hidden').children().prop('disabled', true);
});
Он добавляет «отключено» ко всем дочерним элементам моего js-зависимых полей div, если style="display: none;"
. Как я могу отменить это, когда Div JS-зависимых полей становится видимым?
Спасибо заранее!
3 ответа
Вы должны правильно использовать прослушиватель .on()
с событием .click()
с функцией обратного вызова в методе prop()
:
$( "#new_warehouse" ).on('click', function() {
$('.js-dependent-fields').children().prop('disabled', function(){
return $(this).is(':hidden');
});
});
Следует отметить, что целевой элемент является селектором класса, поэтому он будет возвращать коллекцию, поэтому мы должны найти каждый из них с $(this)
и проверить, является ли он :visible
.
Возможно, более подходящий код будет
$( "#new_warehouse" ).onClick(function() {
$('.js-dependent-fields').children().prop('disabled',
$('.js-dependent-fields').is(':hidden') ?
true : false );
});
Вы можете полностью изменить эффект, используя: visible pseudo class selector. Но для ваших нужд вы можете использовать вот так:
$('.js-dependent-fields:hidden').children().prop('disabled',
$('.js-dependent-fields').is(':hidden')//sets true if hidden else false
);
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.