Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2011, 15:07
Новичок на форуме
Отправить личное сообщение для Eldrich Посмотреть профиль Найти все сообщения от Eldrich
 
Регистрация: 18.09.2011
Сообщений: 3

Сократить код.
Доброго времени суток.

Имеется очень страшный, импровизированный код:
<head>
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
    </style>
</head>
<table class="style1">
    <tr>
        <td>
            &nbsp;</td>
         <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt;  width: 24.6521px; height: 24.3333px;">
 <div onclick="r5u5()"><em id="Em5u5"><img alt="" src="(Картинка1)" align="middle"  style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td>

        <td>
            &nbsp;</td>
    </tr>
    <tr>
         <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt;  width: 24.6521px; height: 24.3333px;">
 <div onclick="r4u4()"><em id="Em4u4"><img alt="" src="(Картинка2)" align="middle"  style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td>

         <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt;  width: 24.6521px; height: 24.3333px;">
 <div onclick="r3u3()"><em id="Em3u3"><img alt="" src="(Картинка1)" align="middle"  style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td>

         <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt;  width: 24.6521px; height: 24.3333px;">
 <div onclick="r2u2()"><em id="Em2u2"><img alt="" src="(Картинка2)" align="middle"  style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td>

    </tr>
    <tr>
        <td>
            &nbsp;</td>

        <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt;  width: 24.6521px; height: 24.3333px;">
 <div onclick="r1u1()"><em id="Emr1u1"><img alt="" src="(Картинка1)" align="middle"  style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td>

        <td>
            &nbsp;</td>
    </tr>
</table>


И ещё страшнее скрипт...
<script type="text/javascript">
    c =  "<img alt=\"\" src=\"(Картинка1)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">"
    s =  "<img alt=\"\" src=\"(Картинка2)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">"
    ch = "<img alt=\"\" src=\"(картинка3)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">"
    sh = "<img alt=\"\" src=\"(Картинка4)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">"

    function r1u1() {

        document.getElementById('Emr1u1').innerHTML = ch;
        document.getElementById('Emr2u2').innerHTML = s;
        document.getElementById('Emr3u3').innerHTML = c;
        document.getElementById('Emr4u4').innerHTML = s;
        document.getElementById('Emr5u5').innerHTML = c;

    }

    function r2u2() {

        document.getElementById('Emr1u1').innerHTML = c;
        document.getElementById('Emr2u2').innerHTML = sh;
        document.getElementById('Emr3u3').innerHTML = c;
        document.getElementById('Emr4u4').innerHTML = s;
        document.getElementById('Emr5u5').innerHTML = c;

    }

    function r3u3() {

        document.getElementById('Emr1u1').innerHTML = c;
        document.getElementById('Emr2u2').innerHTML = s;
        document.getElementById('Emr3u3').innerHTML = ch;
        document.getElementById('Emr4u4').innerHTML = s;
        document.getElementById('Emr5u5').innerHTML = c;

    }

    function r4u4() {

        document.getElementById('Emr1u1').innerHTML = c;
        document.getElementById('Emr2u2').innerHTML = s;
        document.getElementById('Emr3u3').innerHTML = c;
        document.getElementById('Emr4u4').innerHTML = sh;
        document.getElementById('Emr5u5').innerHTML = c;

    }

    function r5u5() {

        document.getElementById('Emr1u1').innerHTML = c;
        document.getElementById('Emr2u2').innerHTML = s;
        document.getElementById('Emr3u3').innerHTML = c;
        document.getElementById('Emr4u4').innerHTML = s;
        document.getElementById('Emr5u5').innerHTML = ch;

    }

    </script>



Данная страсть выполняет простейшую функцию - меняет картинку при щелчке мыши. Но, этот пример лишь часть огромного кода, т.е. если нужно будет запрограммировать данным образом 100 картинок, то нужно будет прописать 100х100 вариантов в скрипте... А это огромный информационный объём, что не есть хорошо.

А уж о смене картинки при наведении на неё мыши, вкупе уже с существующим щелчком, вообще молчу... данным образом написать не получиться практически никак.

Можно ли каким-либо образом упростить скрипт, ну или использовать css, в котором я слабо разбираюсь (и в javascript ничего не понимаю, но как обезьяна повторить могу, изменив по-своему =))?

Заранее спасибо за помощь, она упростит мне жизнь... причём очень сильно)
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2011, 15:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

сократить ... трудно будет. легче по-своему написать новый код.

и то, и то, как мне кажется, сейчас потребует какого-то количества бабла.

начинайте потихоньку изучать хотя-бы HTML+CSS. при хорошем коде лёгкий скрипт возьмётся написать каждый.

если есть готовое бабло ( 400 минимум ), можете написать в раздел "работа", там напишут хороший код в кратчайшие сроки.

хм. я заведомо не рассмотрел вариант "добра" от программиста. не думаю, что кто-нибудь не плюнет на пол от такого кода, что в примере.


______
PS.я ничего не прошу. я предвижу ^_^
Ответить с цитированием
  #3 (permalink)  
Старый 18.09.2011, 15:57
Новичок на форуме
Отправить личное сообщение для Eldrich Посмотреть профиль Найти все сообщения от Eldrich
 
Регистрация: 18.09.2011
Сообщений: 3

Ну, код я сам, лично писал и не откуда не копировал. Т.е. я его уже сам написал.

Ну, если нельзя, так нельзя.) Спасибо за помощь.)
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2011, 11:37
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Самый простой способ сократить, но не гибкий вообще никак.
var ruElem = [], htmlObj = {
    c =  "<img alt=\"\" src=\"(Картинка1)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">",
    s =  "<img alt=\"\" src=\"(Картинка2)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">",
    ch = "<img alt=\"\" src=\"(картинка3)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">",
    sh = "<img alt=\"\" src=\"(Картинка4)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">"
};
function ru ( index ) {
	if ( !ruElem.length ) {
		for ( var i = 1; i < 6; i++ ) {
			ruElem.push( document.getElementById(["Emr","u",""].join(i)) );
		}
	}
	for ( var i = 0, len = ruElem.length; i < len; i++ ) {
		ruElem.innerHTML = htmlObj[ (i % 2 ? 's' : 'c') + (i == index : "h" : '') ];
	}
};

Использовать так
<div onclick="ru(2)">...

Последний раз редактировалось nikita.mmf, 19.09.2011 в 15:12.
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2011, 12:35
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 10.12.2010
Сообщений: 114

Где-то уже писал.. Гибкий и короткий вариант на jQuery. Кликать по пунктам.
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script>
    $(function()
    {
      $('#images img').hide();
      $('#menu li').click(function()
      { 
        $('#images img').hide().eq($(this).index()).show(); 
      })
    });
    </script>
  </head>
  <body>
  <ul id="menu" style="cursor: pointer">
    <li>Smile</li>
    <li>Haha</li>
    <li>Nono</li>
  </ul>
  <div id="images">
    <img alt="" src="http://javascript.ru/forum/images/smilies/smile.gif"/>
    <img alt="" src="http://javascript.ru/forum/images/smilies/haha.gif"/>
    <img alt="" src="http://javascript.ru/forum/images/smilies/nono.gif"/>
  </div>
  </body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 19.09.2011, 13:40
Новичок на форуме
Отправить личное сообщение для Eldrich Посмотреть профиль Найти все сообщения от Eldrich
 
Регистрация: 18.09.2011
Сообщений: 3

Огромное Вам спасибо.) Буду вникать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать bodyclick код royksopp Общие вопросы Javascript 8 14.10.2011 16:39
АААААААААА!!! Протестируйте пожалуйста код в разных браузерах. выявляем ошибки. prototype Элементы интерфейса 1 22.07.2011 07:47
Помогите сократить код Diego Общие вопросы Javascript 4 14.02.2011 20:01
код странно отрабатывает комбинацию клавиш ffx Общие вопросы Javascript 4 20.01.2011 10:58
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 13:31