|
|
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Помогите, пожалуйста, заблудившемуся в 3-х соснах. Ситуация такова. Есть html-страница, вот её нужный фрагмент: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Необходимо, чтобы щелчок по любому из "средних" div'ов, имеющих среди прочих своих классов также и выражение "vid_uslugi_1...4" возвращал в консоль позицию вхождения фрагмента "vid_uslugi_" в полную строку класса. Для этого я сделал вот такой код: Код: javascript 1. 2. 3. 4. 5. 6. 7. И этот код нормально вроде срабатывает, но... по праздникам. Т.е. лишь тогда, когда щелчок приходится точно на на узенькую щёлочку между элементом <figure> и <div class="info"> - то есть попадает точно на выбранный родительский div, не задевая его дочерние элементы. Мне надо сделать как-нибудь так, чтобы щелчок не только по родительскому div'у, но и по любому из его дочерних элементов также "считался" щелчком именно по этому же родительскому div'у: чтобы выражение e.target.className всегда гарантированно содержало фрагмент "vid_uslugi_". Подскажите, пожалуйста, как сделать такое "принудительное" всплытие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 17:43 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 19:18 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
hVostt, спасибо Вам! Но, видимо, я недостаточно чётко изложил вопрос. Попробую упростить задачу, без поиска вхождения. Приведённый Вами код действительно возвращает нужное значение, но только для единственного div'а с классом "inner_1". Моя же html-структура имеет: - основной <div class="row"> (основной, 0-й уровень вложенности), - внутри которого имеются интересующие меня div'ы вида <div class="col-sm-3 proverka_a vid_uslugi_1 (или 2, 3,4...)"> (1-й уровень вложенности), - и уже внутри этих div'ов есть дочерние (мешающие мне своими постоянными перехватами click'ов) элементы (2-й уровень вложенности). Так вот, мне нужно, чтобы щелчок по любому div'у 1-го уровня вложенности (или по любому из его дочерних элементов 2-го уровня вложенности) возвращал хотя бы класс этого самого div'а (1-го уровня вложенности) - т.е. я хочу получить на выходе либо "vid_uslugi_1" либо "vid_uslugi_2" либо "vid_uslugi_3" либо "vid_uslugi_4". Вот примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 19:49 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajka мешающие мне своими постоянными перехватами click'ов Если кто-то внутри перехватывает события и не пускает их всплывать дальше, вам эту проблему никак не решить. neznajkaТак вот, мне нужно, чтобы щелчок по любому div'у 1-го уровня вложенности (или по любому из его дочерних элементов 2-го уровня вложенности) возвращал хотя бы класс этого самого div'а (1-го уровня вложенности) - т.е. я хочу получить на выходе либо "vid_uslugi_1" либо "vid_uslugi_2" либо "vid_uslugi_3" либо "vid_uslugi_4". Вот примерно так. Важно то, что будучи перехваченное и съеденное событие ни для кого больше не существует. Устраните перехват, или разрешите событиям всплывать дальше, и ваша проблема решена. По-другому, вам надо тогда вешать свой обработчик события на все-все-все элементы внутри, и писать дорогостоящую сложную обработку, чтобы пускать события в обход перехватчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 19:59 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
Да, hVostt, Вы правы - я пришёл к такому же выводу. Уже разрешил всплытие и попробовал навесить событие Click на основной div (0-го уровня вложенности, присвоив ему id="price_header") с делегированием обработки на класс "col-sm-3", который есть у всех интересующих меня div'ов 1-го уровня вложенности - всё равно "дочки" (2-й уровень) все перехватывают по-наглому, даже не поперхнувшись: Код: javascript 1. 2. 3. 4. 5. 6. Пришёл к выводу, что мне легче будет в PHP-коде просто навесить соответствующий класс "vid_uslugi_1,2,3,4" не только на каждый div 1-го уровня вложенности, но и на все его дочерние элементы - тогда, наверное, выражение e.target.className всегда гарантированно будет содержать фрагмент "vid_uslugi_". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2018, 20:29 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajkaПришёл к выводу, что мне легче будет в PHP-коде просто навесить соответствующий класс "vid_uslugi_1,2,3,4" не только на каждый div 1-го уровня вложенности, но и на все его дочерние элементы - тогда, наверное, выражение e.target.className всегда гарантированно будет содержать фрагмент "vid_uslugi_". Чёт какой-то жёсткий костыль :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 00:40 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
Зато уже прекрасненько работает! :) Made in "сам сделал" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 02:56 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajkaЗато уже прекрасненько работает! :) Made in "сам сделал" :)правильное решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 08:59 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
вадяneznajkaЗато уже прекрасненько работает! :) Made in "сам сделал" :)правильное решениену да, разгребать-то скорее всего другим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 09:59 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
вадяneznajkaЗато уже прекрасненько работает! :) Made in "сам сделал" :)правильное решение говнокодинг не искореним ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 11:32 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
вадяправильное решение To вадя : Абсолютно с Вами согласен! Оно правильно уж тем, что является, скорее всего, лучшим из неправильных :) skyANAну да, разгребать-то скорее всего другим То skyANA : Вряд ли разгребать другим - оно все закреплено именно за мной, как земля за колхозом когда-то :) Да и разгребать там почти нечего - одностраничный сайт-визитка. В самом крайнем случае - переписывается за вполне приемлемое время. hVosttговнокодинг не искореним То hVostt : иногда и говнокодинг имеет право на существование. Хотя бы в качестве альтернативы вот такому варианту: "...надо тогда вешать свой обработчик события на все-все-все элементы внутри, и писать дорогостоящую сложную обработку..." Опять же если и вправду возникает ситуация, которую в лоб не решить, например: "Если кто-то внутри перехватывает события и не пускает их всплывать дальше, вам эту проблему никак не решить" - тогда приходит на помощь известный рецепт - "нормальные герои всегда идут в обход" (С) - от которого за версту тянет именно говнокодом. Но именно он даёт возможность таки решить "нерешаемую" проблему. Вывод: да здравствует говнокод! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 13:41 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
skyANAну да, разгребать-то скорее всего другим а ты обращал внимание сколько классов навешивают fw? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 13:51 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
вадяskyANAну да, разгребать-то скорее всего другим а ты обращал внимание сколько классов навешивают fw? Не обращал. Мы компоненты либо сами пишем, либо используем реакт. И если один сделает так: "дочки (2-й уровень) все перехватывают по-наглому, даже не поперхнувшись". Второй вобъёт костыль, потому что "легче будет в PHP-коде просто навесить соответствующий класс". То через годик другой обязательно встретится третий, кто будет их сильно материть Но тебе не понять, ты же Рембо-одиночка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 14:29 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
skyANAНе обращал.тогда и не стоит обзывать говнокодом чужой код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 14:47 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
вадяskyANAНе обращал.тогда и не стоит обзывать говнокодом чужой код. А где я обзывал тут что-то говнокодом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 15:27 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
ИМХО, друзья, тут особо и не о чем спорить: - конечно, надо, по возможности, стремиться писать код, придерживаясь общепринятых стандартов и устоявшихся традиций; - в качестве "третьего", который захочет поматерить своих предшественников (1-го и 2-го), как правило, приходит отнюдь не профессор WEB-дизайна - а потому, он по-любому будет материть предшественников (опять же - устоявшаяся традиция:)), НО! - в некотором избытке классов ему будет всё-таки легче разобраться, чем в "дорогостоящих сложных обработках обхода перехватчиков" - это же очевидно; - сколько людей - столько и мнений: какой бы мы ни создали супер-пупер-пере-навороченный и "элегантный" код, щедро сдобренный бутстрапами, ангуларами, реактами и прочими терактами - всегда найдётся кто-нибудь, кому захочется этот супер-код поматерить и раскритиковать, C'est La Vie :) В общем: миру- мир! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 15:29 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajka, скажите, а Вам бы хотелось, чтобы кто-то посмотрел Ваш код и сделал предложение поработать вместе за весьма щедрое вознаграждение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 15:36 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
Вопрос явно провокационно-риторический :) Потому и ответ очевиден. А если серьёзно - я достаточно трезво оцениваю свои умения, чтобы мотивированно сомневаться в искренности подобных предложений в мой адрес. Самое сложное, что мне удалось сделать на поприще WEB-разработки - это двуязычный онлайн-сервис , генерирующий 3d изображение радиокомпонента по заданным параметрам в формате "*.wrl" Вышесказанным я ещё раз подтверждаю правоту вашего предположения насчёт появления "3-го матерщинника" - но иногда допускаю подобные погрешности. В особенности, когда некоторая несущественная мелочь явно не стОит лишних извращений усилий по написанию безупречно правильного кода. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 16:20 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajka, легко шутить на эту тему, когда один работаешь. В коллективе "иногда допускаю подобные погрешности" может и к конфликту привести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 16:46 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
Ну, тут мне возразить нечем - никогда не работал в WEB-девелоперском или IT-шном коллективе. Всё время приходилось работать в организациях, где и один программер/IT-шник - роскошь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 16:58 |
|
||
|
JQ: Как Click по дочернему элементу перенаправить на родительский?
|
|||
|---|---|---|---|
|
#18+
neznajkaТо hVostt : иногда и говнокодинг имеет право на существование. Хотя бы в качестве альтернативы вот такому варианту: "...надо тогда вешать свой обработчик события на все-все-все элементы внутри, и писать дорогостоящую сложную обработку..." Опять же если и вправду возникает ситуация, которую в лоб не решить, например: "Если кто-то внутри перехватывает события и не пускает их всплывать дальше, вам эту проблему никак не решить" - тогда приходит на помощь известный рецепт - "нормальные герои всегда идут в обход" (С) - от которого за версту тянет именно говнокодом. Но именно он даёт возможность таки решить "нерешаемую" проблему. Вывод: да здравствует говнокод! :) Говнокодинг не просто имеет право на существование. Говнокодинг прекрасен, так как позволяет получить результат здесь и сейчас, проверить различные техники и методы, не заморачиваясь на качестве кода. Но в долгосрочной перспективе, говнокодинг приносит боль и страдания, а выражаясь языком бизнеса, теряются бабки, вырастают риски как на дрожжах. Да, очень часто во многих унылых конторах принято, что некий кусок кода закреплён конкретно за одним человеком. Даже если команда большая, никакой командной разработки нет, каждый возделывает свой участок, каждый делает одно и то же, и не пускает к своему коду никого, как курица-наседка. Но даже если отбросить пресловутый бизнес и сопровождение.. человек, который привык говнокодить, стоит безобразно дешево, и не ценится, потому что тупо не умеет по-другому, потому что таких говнокодеров пруд пруди. Он прекрасно впишется в захудалую конторку, клепающее такое говно, что автоваз позавидует. И платить ему будут 3 копейки, и даже это за счастье. Так что пожалуйста, дело ваше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2018, 18:59 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39617881&tid=1444239]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 499ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...