Михаил В.
2195 сообщений
#15 лет назад
elosoft,
Цитата:
А при чем тут родитель? В нем могут быть и чекбоксы которыми не нужно управлять. Вы предлагаете писать 100 условий?

Предлагаю обсуждать реальные задачи, а не придумывать невыполнимые условия. Разумеется, программист тоже может задавать какие-то свои классы, и это как раз тот самый организационный вопрос - в идеале они не должны пересекаться с версткой.
Т.е., если у верстальщика есть <input type="checkbox" class="checkbox"/>, то программист может превратить в что-нибудь подобное:<input type="checkbox" class="checkbox quizItem"/>
А вот верстальщику задавать id совсем нежелательно, так как приоритет выше у js-разработчика/

Цитата:
И почему jquery отдельный вопрос? Это обычный javascript и работает как и все остальное. То, что он скрывает от вас часть обработки, ничего не меняет.

jquery ориентирована на работу с селекторами. Отнюдь не все js-программисты разделяют этот подход, а в крупных проектах зачастую работать приходится с совсем другими фреймворками. Ext JS, например.
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("Sir_Michael"):
Предлагаю обсуждать реальные задачи

Это абсолютно реальная и, кстати, очень типичная задача.
Цитата ("Sir_Michael"):
jquery ориентирована на работу с селекторами.

Селеторы jquery это всего лишь выборка в массив по какому-то признаку элементов документа стандартными средствами javascript. И больше ничего.

зы
Цитата ("Sir_Michael"):
Т.е., если у верстальщика есть <input type="checkbox" class="checkbox"/>, то программист может превратить в что-нибудь подобное:<input type="checkbox" class="checkbox quizItem"/>

А если Вы считаете, что документ надо организовывать такими методами, Вы должны это все описать и довести до всех исполнителей.
Михаил В.
2195 сообщений
#15 лет назад
elosoft,
Цитата:
Это абсолютно реальная и, кстати, очень типичная задача.

Почему-то никогда не сталкивался с подобным. Если можно, продемонстрируйте на существующем проекте. Вместе посмотрим, покажу как бы я решал подобную задачу.

Цитата:
Селеторы jquery это всего лишь выборка в массив по какому-то признаку элементов документа стандартными средствами javascript. И больше ничего.

Селекторы в jquery - это как раз все. Именно работой с селекторами она и привлекает разработчиков. Ядро jQuery - функция jQuery(). И практически вся работа построена на ней.

Цитата:
А если Вы считаете, что документ надо организовывать такими методами, Вы должны это все описать и довести до всех исполнителей.

Не считаю. Это пример решения вашей задачи.
Евгений О.
2989 сообщений
#15 лет назад


Цитата ("Sir_Michael"):
Почему-то никогда не сталкивался с подобным. Если можно, продемонстрируйте на существующем проекте.

Вот например. Последние 3 дня как раз этим занимался. Тут один чекбох, который управляет состояниями всех остальных сразу. У управляемых чекбоксов только один общий признак - класс. Имейте ввиду, что это не одна спошная таблица, просто так выглядит, даже классов у строк таблиц несколько.
Цитата ("Sir_Michael"):
Селекторы в jquery - это как раз все. Именно работой с селекторами она и привлекает разработчиков. Ядро jQuery - функция jQuery(). И практически вся работа построена на ней.

Еще раз повторю: jquery обычный javascript и внутри него все решается только средствами javascript.
Цитата ("Sir_Michael"):
Это пример решения вашей задачи.

Это не пример решения моей задачи. Это пример, как должен организовывать работу руководитель проекта. Именно он должен определять как должны решаться все критические и двусмысенные вопросы и следить за их выполнением.
Михаил В.
2195 сообщений
#15 лет назад
$("#checkboxId").click(function() {
$("#родитель").find("input").toggleClass("hidden");
});


Похоже я уперся в стену. И уже не понимаю что вы говорите.

Цитата:
Еще раз повторю: jquery обычный javascript и внутри него все решается только средствами javascript.

И что? Любая js библиотека - это обычный javascript.
Большая часть строк в коде с использованием jQuery будет выглядеть так: $( selector, );
Приятно вот так одной строчкой повесить событие на какой-то элемент и даже произвести какое-то действие. Удобно добавлять-убирать классы.
jQuery - это удобная работа с селекторами, немного анимации и чуть-чуть ajax. А привлекает она именно первым.

Цитата:
Это не пример решения моей задачи. Это пример, как должен организовывать работу руководитель проекта. Именно он должен определять как должны решаться все критические и двусмысенные вопросы и следить за их выполнением.

Есть строго определяемый codestyle внутри команды, допустим, его определяет сферический руководитель. А есть общепринятые практики. Их много, и большинство рекомендует изабавляться от наследования и id в css. О них мы и говорим, откуда взялся руководитель проекта непонятно.

За сим заканчиваю. Пользы от форума все равно нет.
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("Sir_Michael"):
$("#checkboxId"...

Вот это внутри jquery означает выделение из параметра id и поиск в документе элементов с этим id через стандартные функции javascript для работы с dom. Вы упираетесь в способ написания этих функций, но внутри jquery все это разберется на отельные параметры и функции и будет последовательно выполняться. Все подобные библиотеки сокращают внешнюю форму записи, но не изменяют реальное выполнение. Где-то внутри библиотеки будут вызваться функции типа getElementById, getElementsByName, будут циклы которые перебирают элементы документа если их нельзя найти стандартными функциями javascript и т.д. и т.п. Ajax и анимация - это просто приятное и удачное дополнение. Хотя на признать, что анимация в jquery очень удачная, не дергается, не прыгает, как бывает в других библиотеках.
Цитата ("Sir_Michael"):
А есть общепринятые практики. Их много, и большинство рекомендует изабавляться от наследования и id в css.

Это всего лишь согласие с чьим-то когда-то высказанным мнением. Пройдет год-другой и появятся другие мнения.
Цитата ("Sir_Michael"):
откуда взялся руководитель проекта непонятно.

Кто-то должен в реальной работе расставить точки над i и взять на себя отвественность за конечное решение. Просто так коллетив никогда не договориться, один любит так, другой эдак, один привык эдак, другой так - короче лебедь, рак и щука. Например, мы здесь вряд ли придем к согласию, хотя может и достигнем взаимопонимания .
Антон В.
1807 сообщений
#15 лет назад
Короче я бы подрезюмировал....Товарищи верстальщики - пользуйтесь классами и ЗАБУДЬТЕ про айдишники. Всё, что вы хотите реализовать через айдишник, можно реализовать с помощью классов. АБСОЛЮТНО ВСЁ.
Товарищи программисты - спокойно юзайте свободные от верстальщицких рук айдишники, выстраивая логику скриптов так, как Вам хочется.

Ура, щастье, радуга, лошадки...
Владимир М.
578 сообщений
#15 лет назад
Итого для верстальщика существует два варианта (по шагам):
----- 1й вариант
1. открыть хтмлю и приписать тегу с классом sometag и айдишкой anyId новый айди modification1
3. открыть цсс и под стандартным классом sometag дописать класс .sometag #modification1 {}
----- 2й вариант
1. открыть хтмлю и у одного из тегов класса sometag изменить класс на типа sometag-mod1
2. открыть цсс и под классом sometag задать новый класс sometag-mod1 {}
----- итого и там и там я вижу равное количесвто трудозатрат и одинаковую читаемость
между тем кодеру может потребоваться менять сотню строк где явным образом указывался anyId того самого тега
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("vladmax"):
итого и там и там я вижу равное количесвто трудозатрат и одинаковую читаемость

Золотые слова .
Вот если все систематезировать до начала проекта, вот тогда может и будет выгода.
Владимир М.
578 сообщений
#15 лет назад
Цитата ("elosoft"):
управляемых чекбоксов только один общий признак - класс
наверное у них есть еще класс формы и можно написать .formclass INPUT {} и для единственного еще инпута (остальное у вас 2 селекта и текстарея я так понимаю) прописать как исключение отдельный класс типа .nazvanie {} .
Константин Ищенко
105 сообщений
#15 лет назад
Можно легко обойтись и без ID, но если очччень хочется, то:
Ничто не мешает изменить ID как в CSS файле, так и в самом JS.
Как правило, в объектно написанном JS искомый ID фигурирует единожды, при объявлении переменной. Потом в функциях используется только ИМЯ переменной.
Т.е. нужно 1 раз изменить значение ID в JS файле.
Конечно, бывают сжатые JS файлы, и т.д.
В этом случае так-же легко меняем ID в CSS и на странице.

За все время только 2 раза столкнулся с необходимостью сменить ID элемента.
Даже в большом проекте с двумя десятками шаблонов это занимает не более 5-ти минут.

Вывод: ID vs CLASS как и DIV vs TABLE это вопрос религии.
А спорить с адептами - занятие бессмысленное и бесконечное)
Антон В.
1807 сообщений
#15 лет назад
2frags, вопрос сводится к следующему - если классы НИКОМУ не мешают, а айдишники МОГУТ создать неудобства, a при этом классами можно реализовать любую задачу CSS, то ЗАЧЕМ вообще, кроме тех самых "религиозных" убеждений, использовать айдишники?

Вопрос не сводится к тому, можно использовать айдишники, или нет, ясное дело можно...Вопрос в следующем - ЗАЧЕМ?
Нуры К.
88 сообщений
#15 лет назад
Вот вы заладили, прочел все ужаснулся. Че вы докопались к этим id / class. По мне если ты не дурак ты и так поймешь, и договоришься с любым програмером. И вообще когда ты верстаешь, ты же айди не на бум придумываешь типа "saw23dmsa12k3jskd" а делаете определенное название тому или иному элементу. Поэтому всегда можно в любой верстке разобраться.

Вообще дискуссия не о чем. Я могу так же рассуждать, зачем кидают мусор на улице, если есть бачки? Зачем пристегиваться в автомобиле, если он тонирован? Везде играет человеческий фактор, не думаю что каждый в жизни делает что-то по правилам
Михаил В.
2195 сообщений
#15 лет назад
YehBr, и вы ничего не поняли.

Если верстальщик верстает блок навигации в шапке и пишет id в таком блоке:
<ul id="menu">
<li><a href="#">Home</a></li>
...
</ul>

Он еще не готов к командной работе или к верстке серьезных проектов. В следующем макете этот же блок может всплыть в футере.
И есть примеры, когда дублируются те же, казалось бы одиночные, элементы как шапка и футер.

Если он верстает форму и уже научился тегу label (а 95% верстальщиков на weblancer.net как будто не подозревают о его существовании вообще) и старательно прописывает атрибуты id и for в примерно такой конструкции:
<label for="username">Name:</label> <input type="text" id="username"/>

то тем более не готов

2frags это вопросы не религии, а как раз практики. Только нужно один раз понять о чем речь
Михаил В.
2195 сообщений
#15 лет назад
Собственно, сам weblancer.net прекрасно иллюстрирует то о чем говорю я и задается вопросом nehovaysyatopol

View source: - ID "left_panel" already defined. Исполнитель не предусмотрел, что элемент, казавшийся ему уникальным, будет использован неоднократно на одной странице.
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("vladmax"):
наверное у них есть еще класс формы и можно написать .formclass INPUT {} и для единственного еще инпута ........

Да придумать можно много чего . В таких случаях все сводится к простому принципу "мини-мах" - минимум затрат, максимум эффекта. В данном случае - минимум кода, максимум простоты для модификации.

А использовать в css можно все, что не запрещено. Вопрос то не в этом. Вопрос что именно и как использовать, чтобы получить возможность последующих изменений с минимальными затратами.
Евгений Б.
5330 сообщений
#15 лет назад
Цитата ("nehovaysyatopol"):
пользуйтесь классами и ЗАБУДЬТЕ про айдишники

ну это лично Ваше мнение, которое на практике грозит гемороем и непонятными говнокодами и конструкциями
Владимир М.
578 сообщений
#15 лет назад
Плнета Земля, 2014 год.
в новом стандарте 3GHTML упразднен атрибут id и введено 2 новых атрибута, которые могут присваиваться тегу:
- id4coder
- id4maker
первый наследует все рестрикты старого id, второй напротив допускает многократное использование в поле видимости одного документа нескольких id4maker с одинаковым значеинем....
Планета умиленно утирает свою скупую (женскую?) слезу...
Михаил В.
2195 сообщений
#15 лет назад
ArtPro, а вы топик читали, или просто так написали? Где аргументация.
Александр Отсутствую
3460 сообщений
#15 лет назад
Не юзаю id в верстке