зависимая видимость
Подскажите, как реализовать такое:
есть fiedlset, в нем поля - по умолчанию с display:none. Как сделать, чтобы если хотя бы одно поле стало видимым то и fieldset - тоже стал видимым иначе fielset - display:none; Заранее спасибо |
А видимость сама по себе, самопроизвольно переключается?
|
поля в fieldset становятся видимыми в зависимости от других полей-списков вне этого fielset. Но почему-то не хотелось бы завязывать на этом.
Возможно ли организовать событие которое срабатывает когда хотя бы одно поле внутри fieldset становиться видимым. Как это записать на jquery? |
$(anyElement).trigger('anyevent'); // .. $(anyElement).on('anyevent', function() { anyAction(); }); |
не совсем понимаю что в моем случае будет anyevent
|
if ($('anyElement:hidden').length) { $('#fieldset').css({ 'display': 'none' }); } else { $('#fieldset').css({ 'display': 'block' }); } но не могу понять в какое событие это засунуть |
в моём случае всегда $('anyElement:hidden').length - false почему?
|
anyElement - это any element (любой элемент)
|
это понятно. Подскажите вот что:
if ($('anyElement:hidden').length) {... я так понимаю, что если элемент будет в display:none, то он будет в наборе, а lenght считает сколько их, и по нему можно определить скрывать или не скрывать. Почему у меня во всех случаях условие в if выполняется? даже когда нет скрытых? |
Цитата:
Вместо anyElement нужно подставить свой селектор :) |
danik.js,
Цитата:
|
Не стал новую тему заводить...
Есть вот такой вот массив: var krug = ["Фа","До","Соль","Ре","Ля","Ми","Си"]; Есть форма,в которой задается количество знаков и два переключателя- диез и бемоль. Как в зависимости от состояния переключателя вывести нужное количество нот? Например,переключатель стоит "диез" и 2 знака, Значит выводим сначала массива, то есть "Фа", "До". Если же положение "бемоль" и количество стоит тоже 2, то выводим"Си", "Ми". Последовательность именно такая. |
sotik,
:-? function get(n,d) { var krug = ["Фа","До","Соль","Ре","Ля","Ми","Си"]; d == "бемоль" && krug.reverse(); return krug.splice(0, n) } alert(get(2)); alert(get(2, "бемоль")); |
Спасибо большое.
Можно пояснить 4 и 5 строчку? Как я понимаю: Если d=="bemol", то переворачиваем массив,так? просто для меня несколько необычная форма условия. А в 5 сроке соединяем вроде как нужное кол-во элементов массива? Как грамотно сказать? |
sotik,
Цитата:
|
Хорошо.А как вернуть массив в исходное состояние в случае его переворачивания(после return конечно же) ?
|
Цитата:
|
Потому что в другой функции код работает с оригинальным массивом:
//Соответствие с тональностью if(radios[2].value=="Не соотносить с апликатором"){ if(k>0){ if(krug.indexOf(alt)<k && radios[0].checked)valton++; if(krug.indexOf(alt)>6-k && radios[1].checked)valton--; } } Переменная alt - это элемент массива; Переменная k - количество знаков. |
sotik,
и как ваш код связан с моим? |
Очень просто.
В нашу функцию мы попадаем из формы когда меняем знаки,а из нее в функцию обработки ноты: Если знаки не меняются,то основная функция(обработки ноты) работает с исходным массивом krug. var id = "e"; document.onclick = function( e ){ //Соответствие с тональностью if(radios[2].value=="Не соотносить с апликатором"){ if(k>0){ if(krug.indexOf(alt)<k && radios[0].checked)valton++; if(krug.indexOf(alt)>6-k && radios[1].checked)valton--; } } } //функция обработки знаков ... document.getElementById(id).click(); |
Цитата:
|
Цитата:
рони, взял в арсенал :thanks: |
BETEPAH, на всякий случай
присвоение только надо оборачивать в скобки при такой записи a == s && (b = 1) |
Часовой пояс GMT +3, время: 05:27. |