Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2013, 12:39
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Вопрос по оптимизации кода
День добрый, учу jquery, в целях самообучения сделал небольшой скрипт, в принципе все работает как надо, но мне кажется получилось как-то убого в плане того, что можно было написать покороче и пояснее, профи, жду вашей критики
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>
<script>
      $(document).ready(function(){
        $("#first_tag").click(function()
        { 
          if($(".second_div, .third_div, .four_div").lenght != 0){
            $(".second_div, .third_div, .four_div").hide();
         }
          $(".first_div").fadeIn(600);      
        });
        $("#second_tag").click(function()
         {
		 if($(".first_div, .third_div, .four_div").lenght != 0){
            $(".first_div, .third_div, .four_div").hide();
          }
          $(".second_div").fadeIn(600);
        });
        
        $("#third_tag").click(function()
        {
		if($(".first_div, .second_div, .four_div").lenght != 0){
            $(".first_div, .second_div, .four_div").hide();
        }
          $(".third_div").fadeIn(600);
        });
        $("#four_tag").click(function()
        {
		if($(".first_div, .second_div, .third_div").lenght != 0){
            $(".first_div, .second_div, .third_div").hide();
        }
          $(".four_div").fadeIn(600);
        });
      });
      
    </script>
   <ul> 
     <li><a href="#" id="first_tag">Первый</a></li>
    <li><a href="#" id="second_tag">Второй</a></li>
    <li><a href="#" id="third_tag">Третий</a></li>
    <li><a href="#" id="four_tag">Четвертый</a></li>
  </ul> 
   <div class="first_div"> 
     <h3>Первый див</h3>
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus. Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
    <div class="second_div"> 
     <h3>Второй див</h3>
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus. Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
     <div class="third_div"> 
     <h3>Третий див</h3>
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus. Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
    <div class="four_div"> 
    <h3>Четвертый див</h3>
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus. Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>    
<style>
  ul li{display:inline;padding-left:20px;}
  div.first_div{background-color:#ccc;height:200px;margin-top:20px;}
  div.second_div, .third_div, .four_div{background-color:#ccc;display:none;height:200px;margin-top:20px;}
    </style>
     </body>
</html>

Последний раз редактировалось Царь Леонид, 07.11.2013 в 13:06.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2013, 13:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Царь Леонид,
<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8">
    <style>
    ul li {
        display:inline;
        padding-left:20px;
    }
    div.first_div {
        background-color:#ccc;
        height:200px;
        margin-top:20px;
    }
    div.second_div, .third_div, .four_div {
        background-color:#ccc;
        display:none;
        height:200px;
        margin-top:20px;
    }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script>
    $(document)
        .ready(function () {
            var li = $('[id $= tag]'),
                div = $('[class $= div]');
            li.click(function (event) {
                event.preventDefault();
                div.hide()
                    .eq(li.index(this))
                    .fadeIn(600);
            })
        });
    </script>
</head>

<body>
    <ul>
        <li><a href="#" id="first_tag">Первый</a>
        </li>
        <li><a href="#" id="second_tag">Второй</a>
        </li>
        <li><a href="#" id="third_tag">Третий</a>
        </li>
        <li><a href="#" id="four_tag">Четвертый</a>
        </li>
    </ul>
    <div class="first_div">
        <h3>Первый див</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis
            in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus.
            Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
    <div class="second_div">
        <h3>Второй див</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis
            in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus.
            Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
    <div class="third_div">
        <h3>Третий див</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis
            in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus.
            Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
    <div class="four_div">
        <h3>Четвертый див</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum justo ut felis pulvinar, ac fermentum justo posuere. Ut pretium rutrum ligula, egestas pellentesque quam faucibus sit amet. Interdum et malesuada fames ac ante ipsum primis
            in faucibus. Aliquam erat volutpat. Nullam ullamcorper, tortor in mollis varius, arcu ipsum elementum odio, sed rhoncus elit erat id mi. Praesent vestibulum nec justo quis pretium. Etiam at eros lobortis, scelerisque mi at, dapibus risus.
            Nam id tincidunt justo. Aliquam consequat lectus id nisl scelerisque auctor. Morbi in magna pharetra, ultricies ipsum non, commodo tellus.</p>
    </div>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2013, 13:23
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

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

вызов что-то типа этого лучше сделать типа этого

$('#myTab a').click(function (e) {
  e.preventDefault()

  функция показа таба

})



ссылку на див который относится к данному табу лучше держать в атрибуте

Последний раз редактировалось jsru_, 07.11.2013 в 13:26.
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2013, 13:25
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по изменению кода JavaScript RockTeam Ваши сайты и скрипты 17 21.02.2013 18:30
хотел как лучше, а получилось как всегда. Вопрос оптимизации 9xakep Общие вопросы Javascript 13 21.01.2013 17:27
Помощь недоламеру в оптимизации кода Cooleraunt Javascript под браузер 4 11.01.2013 14:05
Задача оптимизации кода по обработке кликов EVGENi jQuery 4 21.01.2012 17:55