Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое переприсвоение <a href <img src, Динамическое переприсвоение <a href <img 
V
    Опции темы
o4zloy
  Дата 27.4.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Здравствуйте
имеется такой вот код:
...
Код

function jump(arg) {
var $tr="<a href='../img/"+myarr1[arg]+"' name='hr_l' class='highslide' onclick='return hs.expand(this)'>";
document.img_l.src="../thumb/"+myarr1[arg];
return $tr;
  }

...
Код

<div class="gal1">
<a onclick="jump(1)">111</a>
<a onclick="jump(2)">222</a>
<script type="text/javascript">document.write($tr)</script>
<img src="" name="img_l" alt="Highslide JS" title="78" height="58" width="90" ></a>
</div>

Идея состоит в том, что нужно динамически переприсвоить значения href="" и src="" при нажатии ссылки 111, 222 ... и т.д.
С тегом <img src="" все работает нормально. А вот переменная $tr категорически отказывается формироваться.
Нужно именно формировать ее, так как внутри  <a href содержится обработчик события onclick='return hs.expand(this)' который перехватывает содержание href="" и на замену или код яваскрипт он не реагирует, хочет только ссылку.
На яваскрипт никогда не программировал, буду благодарен за любую помощь, особенно с живым примером=)
PM MAIL   Вверх
InvalidProperty
Дата 27.4.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: нет
Всего: 9



Код

function jump(arg) {
document.img_l.src="../thumb/"+myarr1[arg];
document.write("<a href='../img/"+myarr1[arg]+"' name='hr_l' class='highslide' onclick='return hs.expand(this)'>");
  }

т.е. зачем огород городить, прямо в функции и вызывай document.write


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
bars80080
Дата 27.4.2009, 09:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



что есть $tr? сами по себе переменные в js пишутся без $, которая является функцией для некоторых библиотек


ещё не понятна связь document.write и куда возвращает значение функция. замените $tr на tr
а <script type="text/javascript">document.write($tr)</script>
на <div id="asd"></div>
и возвращайте в него значение:
Код

<a onclick="document.getElementById('asd').innerHTML=jump(1);">111</a>

PM MAIL WWW   Вверх
o4zloy
  Дата 27.4.2009, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



InvalidProperty
Без огорода не обойтись(принцип жизни smile ). Формируемый тег нужен в строго определенном месте, перед тегом <img src , он является ссылкой для него.

bars80080
Ваш код навел на мысль, и все сработало smile 
Огромное спасибо, вы очень помогли!
 
Итоговый рабочий код:
Код

   function jump(arg) {
    tr="<a href='../img/"+myarr1[arg]+"' name='hr_l' class='highslide' onclick='return hs.expand(this)'><img src='../thumb/"+myarr1[arg]+"' title='78' height='58' width='90' ></a>";
    return tr;
  }


Код

<div class="gal1">
<a onclick="document.getElementById(\'asd\').innerHTML=jump(1);">111</a>
<a onclick="document.getElementById(\'asd\').innerHTML=jump(2)">222</a>
<div id="asd"></div>
</div>

PM MAIL   Вверх
bars80080
Дата 27.4.2009, 10:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(o4zloy @  27.4.2009,  10:19 Найти цитируемый пост)
<a onclick="document.getElementById(\'asd\').innerHTML=jump(1);">111</a>

document.getElementById(\'asd\').innerHTML - повторяемая часть кода, значит лучше засунуть в функцию, див ведь никуда не убежит
PM MAIL WWW   Вверх
o4zloy
Дата 27.4.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Верно, спасибо еще раз за помощь=)
Исправил:
Код

   function jump(arg) {
    document.getElementById('asd').innerHTML="<a href='../img/"+myarr1[arg]+"' name='hr_l' class='highslide' onclick='return hs.expand(this)'><img src='../thumb/"+myarr1[arg]+"' title='78' height='58' width='90' ></a>";
  }

Код

<div class="gal1">
<a onclick="jump(1);">111</a>
<a onclick="jump(2)">222</a>
<div id="asd"></div>
</div>

Экономия кода налицо, и все отлично работает)

Это сообщение отредактировал(а) o4zloy - 27.4.2009, 10:40
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.