Jump to content

DjTarik

User
  • Posts

    698
  • Joined

  • Last visited

Everything posted by DjTarik

  1. Подскажите, возможно ли это вообще? Может я зря парюсь?)
  2. как раз таки без и и не получается... Разобрался с вызовом, но не могу сделать переменную i глобальной... Ща выложу код. onload = ChangeInput; function ChangeInput() { var list = document.getElementById('SwitchWrap'); // id списка var array = list.getElementsByTagName('input'); // массив из элементов 'input' for (i = 0; i<array.length; i++) { var el = array[i]; // 'input' var parent = el.parentNode; // 'label' neighbor = el.previousSibling; // 'span' // замыкания на i (function(i) { parent.onclick = function (){Extra(i);} })(i); }; }; function Extra(i) { alert(i); } Так работает. А если я делаю 'i' глобальной - не получается.( Глобальной - это я так понимаю onload = ChangeInput; var i; function ChangeInput() { ...
  3. Блин... вроде понятно... Не могу допереть, а как это всё провернуть с функцией? У меня на события вызываются функции...
  4. Не так ответил, Сорри) Я свои вопросы запихнул в твою цитату) UPD: Подскажи, куда копать) 1. Я так понял - можно в цикле присвоить? 2. У меня проблема и переменными, или с установкой события? Про попробовал - это я к тому, что через .setAttribute не прокатит. Ща ещё твою ссылку гляну.
  5. Не, не пашет. Да и об этом я читал, что вроде не должно. вот теперь не могу понять, как тогда поступить? Не хочется же каждому инпуту прописывать по три события...(
  6. Вроде ж не будет работать в IE6.
  7. Немного не понял. Это вообще реально, то, что я хочу сделать? (проставить всем инпутам события через цикл)
  8. Не получается. // !!! --> onload = ChangeInput; var neighbor; function ChangeInput() { var list = document.getElementById('SwitchWrap'); // id списка var array = list.getElementsByTagName('input'); // массив из элементов 'input' for (var i = 0; i<array.length; i++) { var el = array[i]; // 'input' var parent = el.parentNode; // 'label' neighbor = el.previousSibling; // 'span' alert(neighbor); if(el.checked) { neighbor.setAttribute('class','on'); parent.addEventListener("mouseover", OnHoverInput, false); parent.addEventListener("mouseout", OnInput, false); } else { neighbor.removeAttribute('class'); parent.addEventListener("click", ChangeInput, false); parent.addEventListener("mouseover", OffHoverInput, false); parent.addEventListener("mouseout", OffInput, false); }; }; }; // --> function OnHoverInput() { neighbor.setAttribute('class','on-hover'); }; function OnInput() { neighbor.setAttribute('class','on'); }; // --> function OffHoverInput() { neighbor.setAttribute('class','off-hover'); }; function OffInput() { neighbor.removeAttribute('class'); }; // --> и кусок из HTML: <ul id="SwitchWrap"> <li><label for="switch_6"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_6" />Переключатель 6</label></li> <li><label for="switch_7"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_7" />Переключатель 7</label></li> <li><label for="switch_8"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_8" />Переключатель 8</label></li> <li><label for="switch_9"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_9" />Переключатель 9</label></li> <li><label for="switch_10"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_10" />Переключатель 10</label></li> </ul> Срабатывает только на последнем инпуте. Почему не работает в цикле? Я так понимаю, события должны были присвоиться каждому инпуту? p.S. Пока что только для FF.
  9. То ли я кривой или плохо смотрел - но не нашёл прямой ссылки на изображение. Есть ссылка на страницу с этим изображением - я прямой ссылки, типо взял да скопипастил, нету... O_o
  10. DjTarik

    Тег <br />

    Ну, я так понимаю, что их можно юзать только в форматировании контента. В самой вёрстке это недопустимо...
  11. DjTarik

    Тег <br />

    Просто спаны там уже есть, а задавать кучу классов я не хочу. Т.е, в принципе, это нормально?)
  12. DjTarik

    Тег <br />

    Короче, есть детский вопрос: Есть кусок кода: <!-- phone block --> <div class="information phone"> <h5>Телефоны:</h5> <address> <span class="pad-50"> Тел.:<br /><br /><br /> Моб.:<br /><br /> </span> <span> +123 (45) 678-90-12<br /> +123 (45) 678-90-12<br /><br /> +123 (45) 678-90-12 Velcom<br /> +123 (45) 678-90-12 МТС </span> </address> </div> <!-- // phone block // --> Так как в <address> нельзя использовать блочные элементы (да и не особо хотелось тегами загромождать короткий участок кода) - есть такое решение: форматировать текст с помощью <br />. Результат везде одинаково ровный. 1. Как вы относитесь к такому коду? =) Кто-нить так оформляет? 2. Как к подрят идущим <br /> относятся поисковики? O_o Спасибо...
  13. В общем, нужна ваша помощь: Теория: Имеется картинка-спрайт на 4-е состояния: 1. Выключен. 2. Выключен, но с наведённой мышкой. 3. Включён. 4. Включён, но с наведённой мышкой. Положение cпрайта задаётся классами в CSS. HTML: <body onload="ChangeInput('SwitchWrap')"> <form action="#" enctype="application/x-www-form-urlencoded" method="get" id="ChangeForm" class="change-form"> <fieldset> <legend>Стилизованный "input type='radio'"</legend> <ul id="SwitchWrap"> <li><label for="switch_6"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_6" />Переключатель 6</label></li> <li><label for="switch_7"><span><!-- // --></span><input type="radio" name="#" value="#" checked="checked" id="switch_7" />Переключатель 7</label></li> <li><label for="switch_8"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_8" />Переключатель 8</label></li> <li><label for="switch_9"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_9" />Переключатель 9</label></li> <li><label for="switch_10"><span><!-- // --></span><input type="radio" name="#" value="#" id="switch_10" />Переключатель 10</label></li> </ul> </fieldset> </form> JS: function ChangeInput(obj) { var form = document.getElementById(obj); // id списка var array = form.getElementsByTagName('input'); // массив из элементов 'input' for (var i = 0; i<array.length; i++) { var el = array[i]; // 'input' var parent = el.parentNode; // 'label' var neighbor = el.previousSibling; // 'span' if(el.checked) { neighbor.setAttribute('class','on'); parent.setAttribute('onmouseover','OnHoverInput(this)'); parent.setAttribute('onmouseout','OnInput(this)'); } else { neighbor.removeAttribute('class'); parent.setAttribute('onclick','ChangeInput("SwitchWrap")'); parent.setAttribute('onmouseover','OffHoverInput(this)'); parent.setAttribute('onmouseout','OffInput(this)'); }; }; }; // --> function OnHoverInput(obj) { obj.firstChild.setAttribute('class','on-hover'); }; function OnInput(obj) { obj.firstChild.setAttribute('class','on'); }; // --> function OffHoverInput(obj) { obj.firstChild.setAttribute('class','off-hover'); }; function OffInput(obj) { obj.firstChild.removeAttribute('class'); }; // --> В принципе, всё работает. Пока только в FF проверял. Вопросов несколько, поэтому по списку: 1. Если мне нужно установить события 'onmouseover' и 'onmouseout' - это можно сделать только таким способом, как у меня? Через '.setAttribute'? Или как правильно? 2. Я присваиваю класс через "setAttribute('class','on')" - в IE не работает. Я так понимаю, что из-за 'class'? Как быть? Я нуб в JS, так что сильно не пинайте. Расскажите, что к чему. =) Спасибо.
  14. 1. Не всегда. 2. Я про это и говорю - переписывать для него стиль, который мы обнулили. 3. Это Вы заказчику объяснять будете =) 4. Если Вам такие знания ни к чему - можно больше не отвечать в этой теме. Мне они пригодятся. Тем более, что остался только IE( Всё остальное я уже узнал.
  15. Ну, и ещё на таких мелких иконках, кликабельную область стоит делать больше... Пикселей на 5-10. Очень повышает юзабилити)
  16. Если размер изображения (вставляемого через <img>) меньше чем 12px (или что-то около того, точно не могу сказать) - то alt="" виден не будет. Соответственно, если не задавать ширину и высоту - тогда текст в alt="" "растянет" размеры рамки под себя.
  17. не, ну бывают исключения))) на счёт иконок - согласен. Так и делаю.
  18. Однозначно в HTML. По-ходу по спецификации просят, чтобы картинкам был задан размер, да и при отключенной графике в большинстве браузеров верстка не схлопнется/развалится.
  19. ладно... тема-то не о ресетах... Там и так уже всё пережёвано) Кто что ещё по теме может сказать?
  20. Самый простой пример: Вы сверстали сайт (использовали ресет). Всё круто, кроссбраузерно. Отдали вёрстку и забыли про неё. Через неделю, когда её подключат к CMS, вам её вернут, и скажут: "Что за лажа? Мы ввели текст через визуальный редактор - а все теги выглядят одинаково!" И вам придётся настраивать все теги, которые использует редактор заново. Делать их такими, какими они были изначально (т.е. те самые стили по умолчанию, которые мы обнулили в самом начале нашей работы). Поэтому, или сразу настраивать стили под редактор, или не обнулять. Я теперь их переопределяю в своей верстке. Поэтому знание стилей по умолчанию - просто даст ещё большую квалификацию и знания...
  21. Ну, пойду и там покопаюсь... Вряд ли конечно... Ну, отличий много, большинство известны... Но всё равно хотелось бы знать) P.S. Я с недавнего времени не использую ресет...
  22. ладно =) буду пробовать на дивах) А если вообще без них? Т.е. сразу лэйбл и инпут?)))))))))))))))
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy