Волею судеб приняла на обслуживание недоделанный сайт английского языкового клуба. Преподаватель этого клуба - хороший человечек, поэтому решила помочь. Ну и как это водится получила урезанный доступ в админку сайта, кусочек панели управления с видом на биллинг, недоделанный сайт и длииинный список хотелок. Одна из хотелок, хотя вру, далеко не одна, их было много, оказалась не тривиальна в своем решении. Была там кнопочка, вызывающая форму для отправки контактов. И все бы здорово, НО у окошечка с чудными полями напрочь отсутствовал крестик, чтоб его закрыть. Сайт оказался на Modx и для формы использовали сниппет FormIt на Ajax. Долго я колупалась в интернетиках, гуглила и яндексила, вычитывала код и гоняла по странице firebug. В общем тема эта оказалась заезженная, но программисты для решения задачи придумывали километры кода и разнообразные костыли. Пыталась я использовать совет мудрецов
http://dgurin.com/ajax-forma-obratnoy-svyazi-v-popape-modx-revolution/
<a href = “javascript:void(0)” onclick = “document.getElementById(‘callback’).style.display=’none’”><img src=”images/cross.png” width=”16″ height=”16″ style=”float:right;” /></a>
да, нарисованный в cross.png и подсунутый крестик вывелся, даже срабатывал, НО форма не закрывалась до конца. От нее оставалась небольшая полоска, которая утверждала, что она кусок от fancybox (fancybox-wrap fancybox-desktop fancybox-type-inline fancybox-opened) и преследовала меня по всей странице. Процесс изучения форумов и костылей двинулся дальше. Народ плакал, что вот де код то
http://javascript.ru/forum/showthread.php?p=402514должен работать, НО не закрывается и
closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="/javascript:;"></a>',
"при этом при нажатии на области вокруг окна-оно закрывается.."Решила я поелозить и вокруг своей формы и поискать активную область, ну иначе то, как? И тут на 3-м круге курсор мыши выдал ее местоположение, а firebug даже обрисовал ее. И ДА, при клике на эту небольшую квадратную область в правом верхнем углу, ВСЯ форма спокойно закрывалась! А значит в этом месте активная область событие по клику отрабатывала нормально, просто ее не было видно. Короче, вероятно, не будучи программистом открылся мне настолько простой и прямой, как лом способ решения: просто вписала букву X в промежутке между тэгами скрипта. Ибо все, что не лежит внутри тэга выводится браузером на всеобщее обозрение. ИТОГО, вот что получилось:
assets/tpl/js/fancy.js
<a title="Close" class="fancybox-item fancybox-close" href="javascript:;">X</a>
Простите мне стиль изложения, просто это эйфория, когда наконец решаешь задачку, об которую уже всю голову сломал
Надеюсь, пригодится!
Следующая > |
---|