![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Как исправить здесь код, чтобы по клику на одну из видимых рекламных ссылок (ссылка1 или ссылка2) - появлялась невидимая ссылка3 (желательно исправив данный код, а не заменив его на другой, хочу понять что не так):
|
|||
|
||||
_zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Что такое G10 и G20 ?
Почему 2 функции с одним именем ? Ну и где собствеоно изменение стиля visibility ? Итого
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
На странице не должно быть двух элементов с одинаковым атрибутом ID - он должен быть уникален в рамках документа.
|
|||
|
||||
sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
А их и нет.
Уважаемый Webtoper, почитайте пожалуйста о функциях и их аргументах в гугле. Не могут быть две функции с одинаковыми именами в одной области видимости. Вкратце. Вы делаете функцию которая что-то принимает
В вашем коде вы вызываете функцию с аргументов G10, и предпологаете что вызовется trans(G10). Но на самом деле, javascript понятия не имеет что такое G10, а ваши объявленные функции имеют одну и ту же сигнатуру ( trans(arg) ). Посмотрите код _zorn_, - он передает аргументов this - что есть вызывающий элемент (то есть <a> на каторый нажали). Поэтому можно вызывать методы прямо на этом аргументе, при этом его не нужно искать предварительно с помощью document.getElementById() Это сообщение отредактировал(а) sQu1rr - 23.12.2014, 12:43 |
||||||
|
|||||||
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Cпасибо за разъяснения, вроде понял. Zorn, очень интересно подправили, исследую код, разбор полетов делаю (в частности, почему исчезает нажатая ссылка - хотя так и надо, но все же хочу понять логику)...
По ходу возник еще один вопрос - как сделать так, чтоб при нажатии на одну из рекламных ссылок - появлялась третья, а исчезала не только нажатая, но и вторая... То есть, чтобы при нажатии на одну из рекламных (видимых) ссылок - обе они исчезали, а публиковалась на странице только третья (на основе Вашего кода)? |
|||
|
||||
sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Такие вот изменения:
|
||||||
|
|||||||
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
То есть, как я понял, функция проходи по ссылкам и когда видит innerHTML = "" - она понимает что нужно стереть, то есть ничего не написать после срабатывания функции? Правильно я понял, почему исчезают ссылки?
|
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Не думаю
Это сообщение отредактировал(а) sQu1rr - 23.12.2014, 18:41 |
|||
|
||||
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Как здесь сделать, чтобы при переходе по одной рекламной ссылке - исчезали обе, и оставалась после перехода на странице только основная ссылка "GO" ?
|
|||
|
||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
|
||||
|
|||||
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Проверил - вообще не срабатывает... Обе рекламные ссылки остаются, а основная не появляется...
Это сообщение отредактировал(а) Webtoper - 26.12.2014, 01:37 |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
||||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Давайте разберем что же происходит на самом деле? Вы кликаете на ссылку (тег <a>), у которой установлен атрибут href, а так же она должны открываться в новом окне (target="_blank"). Что будет при клике на эту ссылку? Правильно - в новом окне откроется адрес, указанный в href. И то, что вы пытаетесь что-то сделать при клике (onclick), никак на это поведение не влияет. Фактически, у вас открывается новый таб, а потом происходит JS (и ссылка все же скрываться должна ;-) ).
Чтобы в обработчике клика убрать поведение браузера по умолчанию, нужно поймать событие и отменить это действие. Это делается с помощью метода preventDefault() (в событийной модели IE - через свойство returnValue). Подробнее о событиях можно почитать по первой ссылке в моей подписи. Во пример: http://jsfiddle.net/Aliance/s0jt0buz/1/ |
|||
|
||||
Webtoper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Вот: http://jsfiddle.net/Webtoper/xodn18tw/ - ссылки не скрываются почему то... Спасибо, разбираюсь с preventDefault() Там нюанс такой - ссылки исчезают, но переход по ним не происходит... p.s. Извините, случайно нажал не на ту звездочку для благодарности, но в другом сообщении по максимуму поставил. Это сообщение отредактировал(а) Webtoper - 26.12.2014, 18:51 |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Webtoper, не происходит, потому что preventDefault блокирует этот переход. Я не очень понимаю, а что должно быть? Вы хотите и чтобы был переход в новом окне, и чтобы ссылки скрылись? Как-то это странно тогда, обычно после перехода мало кто уже смотрим назад в предыдущую вкладку.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |