LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 01:55:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [JS] Как менять класс объекта?  (Прочитано 980 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« : 31.12.2009, 15:15:34 »

Нужна функция или пример как при клике по ссылке показывать скрытый элемент и при повторном клике скрывать снова, подставляя нужный класс или стиль (display:none)

Подробно
нужно чтоб по умолчанию JS подставлял невидимый класс или стиль, а при клике по ссылке [форматирование], стиль или класс менялся на видимый. В общем нужен самый элементарный эффект спойлера.

Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #1 : 31.12.2009, 15:32:38 »

на Jquery вообще легко, за 5 минут пишется, по клику делаем AddClass с display: hidden и навешиваем событие hide(slow) на клик обратно - убираем класс RemoveClass и опять же эффект плавного появления
Записан
era
Dev Team
******

Репутация: +333/-4
Offline Offline

Пол: Мужской
Сообщений: 2259


В туалете лучше быть пользователем, чем админом.


« Ответ #2 : 31.12.2009, 15:32:55 »

элемент, на который будут кликать - вызывает JS-функцию "CourseDisplay":
Код:
<div id="cimg_4" class="jscTreeImg" name="cimg_4">
<img border="0" align="absmiddle" src="/modules/mod_jsc_tree/images/kat_act.png" onclick="CourseDisplay(4); return false;"/>
</div>

сам элемент, который скрывать:
Код:
<div id="subcat_4" class="jscTreeAct" name="subcat_4">
Тут текст
</div>

JS, подменяет класс у DIV'а (в одном классе он скрытый, в другом видимый) + подменяет картинку (плюсик/минусик например) (в первом ):
Код:
<script type="text/javascript" language="JavaScript">
function CourseDisplay(id) {
d  = document.getElementById('subcat_'+id);
im = document.getElementById('cimg_'+id);
if (d.className == "jscTreeNoAct"){
d.className = "jscTreeAct"
im.innerHTML = '<img onclick="CourseDisplay('+id+'); return false;" border="0" src="/modules/mod_jsc_tree/images/kat_act.png" align="absmiddle">';
} else {
d.className = "jscTreeNoAct"
im.innerHTML = '<img onclick="CourseDisplay('+id+'); return false;" border="0" src="/modules/mod_jsc_tree/images/kat_noact.png" align="absmiddle">';
}
};
</script>

пример CSS для скрытых видимых:
Код:
div.jscTreeAct {
  display:block;
  margin-top:0;
  padding:0 0 0 15px;
  width:90%;
}

div.jscTreeNoAct {
 display:none;
 margin-top:0;
 padding:0 0 0 15px;
 width:100%;
}
Записан
..С...е...р...ы...й..
Завсегдатай
*****

Репутация: +108/-2
Offline Offline

Сообщений: 531



« Ответ #3 : 01.01.2010, 18:33:03 »

пришлось немного помаяться и доработать эту функцию под конкретно TinyMCE.

CSS:

<style type="text/css">
<!--
#comment_tbl{height:auto !important}      /* фикс: превращает фиксированную высоту таблицы редактора в нормальную */
tr.mceFirst{display:none}            /* скрывает панель форматирования по умолчанию, раньше чем срабатывает скрипт  */
.jscTreeAct{display:block !important}
.jscTreeNoAct{display:none}
-->
</style>



JavaScript:

<script type="text/javascript">
function CourseDisplay() {
   d  = document.getElementById('comment_tbl').getElementsByTagName('TR')[0];    // получает адрес нужной строки по ID таблицы и порядковому расположению строки
   im = document.getElementById('editor_exp');    // получает доступ к ссылке раскрытия спойлера по ID
   if (d.className == "mceFirst jscTreeAct"){
      d.className = "mceFirst jscTreeNoAct"
      im.innerHTML = 'Форматирование';
   } else {
      d.className = "mceFirst jscTreeAct"
      im.innerHTML = 'Свернуть форматирование';
   }
}
</script>



элемент, на который будут кликать - вызывает JS-функцию "CourseDisplay":

<a href="#" id="editor_exp" onclick="CourseDisplay(); return false;">[Форматирование]</a>



сам элемент, который нужно скрывать динамичный, то есть он генерируется непосредственно самим JavaScript редактора, по этому его нельзя увидеть статично в шаблонеформы, только в фаербаге, например, и выглядит этот код примерно так:

<table id="comment_tbl" class="mceLayout">
  <tr class="mceFirst">
      <td class="mceToolbar">  </td>
   </tr>

   <tr class="mceLast">
      <td class="mceIframeContainer>  </td>
   </tr>
</table>
« Последнее редактирование: 01.01.2010, 19:31:13 от С.е.р.ы.й.В.о.л.к » Записан
mayra
Осваиваюсь на форуме
***

Репутация: +0/-5
Offline Offline

Сообщений: 58


« Ответ #4 : 04.07.2010, 10:00:31 »

Ребята, подскажите рецептик. Вопщем нужно, чтобы при наведении мыши в нужном месте отображалась картинка-линк. Или подскажите хотябы в каком редакторе это лучше и проще сделать. спасибо.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet