|
|
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Не спец. ни с HTML, ни с JavaScript, ни с CSS, поэтому вопрос возник! Тег: <div class="spoilertop" onClick="openClose( '1fddfa055d48476064dcd80f8815bdec' )" style="font-weight: bold">..........</div> образует на экране форума раскрывающийся спойлер, как я понимаю, с именем '1fddfa055d48476064dcd80f8815bdec' . Не заостряюсь на CSS - спойлер рабочий, раскрывающийся и цветной - всё ok! Вопрос в другом. У меня такие имена определяет ф-ция на JavaScript и записывает их в переменную my_tag_id : 'd4df007b1f1ad3d64bd1f94b88ce49ae' 'bfc54aa099b4551c99fde6d769d5719a'........... и т.д. Вопрос: как мне синтаксически модифицировать тег <div> чтобы в нём было не конкретное имя '1fddfa055d48476064dcd80f8815bdec' а переменная my_tag_id , определяющая это имя?? - Если представить тег так: <div class="spoilertop" onClick="openClose( my_tag_id )" style="font-weight: bold">..........</div> спойлер сразу перестаёт раскрываться. - Если так: <div class="spoilertop" onClick="openClose( 'my_tag_id' )" style="font-weight: bold">..........</div> у спойлера просто будет имя 'my_tag_id' , а не 32х разрядное значение переменной, что мне нужно передать в процедуру openClose по клику мышки. Помогите с вопросом, кто знает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 23:43 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Фагот, уверены, что в my_tag_id нужное значение, соответствующее дальнейшей логике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 23:55 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
попробовать потестить так Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 23:58 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
ILLHEAD , уверен, т.к. перед выводом спойлера на экран идёт сначала вывод значения переменной my_tag_id на экран же, я оттуде и взял для вас этот параноический пример: 'd4df007b1f1ad3d64bd1f94b88ce49ae' 'bfc54aa099b4551c99fde6d769d5719a' Проблемв в том, что в качестве параметра процедура принимает и "Вася", и "bfc54aa099b4551c99fde6d769d5719a", и "111222"... Лишь бы это была строка взятая в кавычки, а вот ИМЯ переменной дашь - перестаёт работать. А мне надо переменную "привинтить", чтобы создавалось 5...10...15 спойлеров с такими случайными именам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 00:04 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
ILLHEADпопробовать потестить так Код: html 1. А в чём разница? всё равно: my_tag_id='1fddfa055d48476064dcd80f8815bdec' - переменной переменной my_tag_id присвоено конкретное имя. Вот как это у меня: <script language="JavaScript" type="text/javascript"> var my_tag_id = ''; a_rand = "'" + Math.floor( Math.random() * 100 ) + "'"; my_tag_id = "'" + hex_md5(a_rand) + "'"; document.write(my_tag_id); </script> <div class="spoilertop" onClick="openClose(?????????????)" style="font-weight: bold">.....</div> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 00:12 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Фагот Код: javascript 1. Надеюсь, это лишь для отладки? ФаготВот как это у меня:В свою очередь — а в чем разница? Исходя из предоставленного скрипта, переменная my_tag_id присваивается единственный раз при загрузке страницы. Никакого отличия от того, как если бы значение было прописано в разметке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 01:22 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Вы так что ли пытаетесь делать? Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. В момент клика переменная будет содержать последнее присвоенное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 04:25 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
авторГлавное(!), каждый спойлер передаёт своё уникальное имя в процедуру openClose по которому она определяет какой из спойлеров надо закрыть/открыть по клику мыши. У меня это имя определяет переменная my_tag_id Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 09:20 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Фагот... Главное(!) , каждый спойлер передаёт своё уникальное имя в процедуру openClose по которому она определяет какой из спойлеров надо закрыть/открыть по клику мыши. У меня это имя определяет переменная my_tag_id ...А не проще передавать ссылку на див - openClose(this) ? Чем обусловлены гуиды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 11:36 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Тем, что открыть/спрятать нужно див, идентифицируемый гуидом, а не this. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 13:19 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Из-за незнания js вы хотите странного, невозможного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 13:37 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
AntonariyИз-за незнания js вы хотите странного, невозможного. А я в самом начале и написал: ФаготЗдравствуйте! Не спец. ни с HTML, ни с JavaScript, ни с CSS, поэтому вопрос возник!Форумы для того и существуют, чтобы если ты не знаешь, получить ответ знатоков. Если бы я знал JavaScript, стал бы а тут позориться такими вопросами. Просто, если задача нерешаема в принципе, так и напишите. Но я-то знаю, что она решаема - могу Вам дать ссылку на форум, посмотрите код в HTML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 13:59 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
AntonariyТем, что открыть/спрятать нужно див, идентифицируемый гуидом, а не this.Ну, да - наискосок читал. :) И все равно, при стабильной структуре проще передавать this и открывать первого (второго... десятого) потомка, чем заморачиваться с идентификаторами. С jQ это считанными строками делается... Да и нативно тоже не сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 14:14 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
iConstС jQ это считанными строками делается... Да и нативно тоже не сложно. iConst , возможно то, о чём Вы пишите и есть то, что мне нужно. Если для Вас это не сложно, киньте код, организующий 3 независимых спойлера, 2 из которых один в одном (как на картинке, приведенной выше). Чтобы они все автономно открывались/закрывались. И... я нуб во всём этом, поэтому все подсказки типа "а это посмотри там, а это сделай так, как вон там" - для меня пустой звук. Я не смогу. А вот если вы сбросите небольшой рабочий код, который я адаптирую к себе, значит я не зря потратил время на форуме: и ваше, и своё разумеется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 14:32 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. будешь должен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 19:25 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Фагот, 1. Найти все дивы с классом 'spoilertop'. 2. В цикле сгенерить хэши, присвоить id дивам и установить обработчик события 'onclick' Примерный код: Код: html 1. 2. 3. 4. 5. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. p.s. только вот не понимаю, зачем такая возня с хешами, когда можно просто передать 'this' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 19:44 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
-spoiler-, Если правильно помню, getElementsByClassName в ослике не катит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 19:48 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
авторЕсли правильно помню, getElementsByClassName в ослике не катит. должен же ТС проявить хоть какую-то инициативу?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 20:26 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
кстати, http://www.javascriptkit.com/dhtmltutors/css_selectors_api.shtml авторOk, time for the obligatory reality check here- in terms of browser support, querySelector() and querySelectorAll() is supported in Firefox 3.1+, IE8+ (only in IE8 standards mode), and Safari 3.1+ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 20:29 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
-spoiler-кстати, http://www.javascriptkit.com/dhtmltutors/css_selectors_api.shtml авторOk, time for the obligatory reality check here- in terms of browser support, querySelector() and querySelectorAll() is supported in Firefox 3.1+, IE8+ (only in IE8 standards mode), and Safari 3.1+ . Это уже офтоп, но т.к. приведенная в качестве примера статья опубликована в далеком 2009 году, то должен констатировать, что многие приведенные там сведения уже устарели и отсутствие поддержки того или иного функционала в давно выживших браузерах не считаю (большой) проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 21:19 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
авторприведенная в качестве примера статья опубликована в далеком 2009 году, то должен констатировать, что многие приведенные там сведения уже устарели с 2009 поддержка функционала появилась в версиях ниже указанных!? ;) авторотсутствие поддержки того или иного функционала в давно выживших браузерах не считаю (большой) проблемой. 13600721 только что проверил в осле 9 - сухо! следуя твоей же логике, остальное доживает последние дни ;) предлагаю, не точить клыки по напрасну, а оставить это задание ТС на сладкое - самостоятельно найти кроссброузерный вариант выбора тэгов по имени класса... остальную логику, без использования странных id , ему уже показали! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 23:35 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Ребята, спасибо большое всем за участие в тусне, которую я организовал с этими параноическими ID. Спасибо и spoiler 'у! Хватаю его манускрипты и тащу в норку разбираться. Очень надеюсь, что его выриант мне поможет. Последний вопрос. В Visual FoxPro, которым я занимался одно время, есть понятие макроподстановок. Например, если я напишу: а = "15 - 10" b = "- 3" то с = a + b - переменной c присвоится строковое значение "15 -10 - 3", т.е. произойдёт конкатенация 2-х строк. Но если я напишу в программе макроподстановку: d = &c - выполнится действие, в результате которого переменная d получит числовое значение 2 . Вот в чём разница. В то время как d = с просто бы уравняло эти переменные. Есть ли подобные выверты в JavaScript? Т.е. в некую пересенную Z записывается путём сцепления строк некая команда, а потом при обращении &Z - эта команда выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2012, 12:39 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
ФаготЕсть ли подобные выверты в JavaScript? Т.е. в некую пересенную Z записывается путём сцепления строк некая команда, а потом при обращении &Z - эта команда выполняется. Код: javascript 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2012, 12:46 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
ILL HEAD , спасибо! Чувствовал, что подобная заморочка обязательно должна быть в JavaScript. Вот теперь уже точно в норку - разбираться! :0))) И спасибо ещё z-js , его скрипты я тоже уволок. Надеюсь, все эти мои "пляски с бубном" на форуме таки дадут результат... Ещё раз всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2012, 13:47 |
|
||
|
Что-то типа макроподстановки в теге <div>
|
|||
|---|---|---|---|
|
#18+
Для таких простых визуальных действий, как скрыть-показать (или сделать зелёным), не нужны какие-то сложные идентификаторы элементов, не нужны циклы. Вообще не нужны сложные действия на javascript. Вся сложность здесь - в правильной структуре CSS - HTML. Если у вас управляющий элемент (по которому кликаем) и скрытый элемент находятся в одном контейнере, надо просто по щелчку менять класс контейнера, а в CSS описать, что должен делать этот изменённый класс. Например, пусть у нас по умолчанию класс контейнера будет 'hidechild', который будет запрещать отображение элементов с классом 'body'. По щелчку на управляющем элементе 'head' мы просто будем убирать (или добавлять) этот класс 'hidechild' родительскому контейнеру. Вот вкратце и вся логика. Она немного усложнится, если мы хотим создавать вложенные друг в друга контейнеры. Вот примерный код (результат - на http://ir2.ru/hidechild.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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2012, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38071094&tid=1448994]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 399ms |

| 0 / 0 |
