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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите переписать скрипт. 
:(
    Опции темы
Garese
Дата 14.8.2012, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть такой скрипт табов:

Код

jQuery(document).ready(function(){
  jQuery('ul.tabs').delegate('li:not(.current)', 'click', 
  function() {
    jQuery(this).addClass('current').siblings().removeClass('current')
      .parents('div.slider_news').find('table').eq(jQuery(this)
      .index()).fadeIn(150).siblings('table').hide();
  });
});


для его работы требуется jQuery 1.4.2, помогите ему заработать на jQuery 1.3.2.

В программировании полный ноль, буду очень признателен.
PM MAIL   Вверх
serezhka1986
Дата 14.8.2012, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Garese @  14.8.2012,  22:54 Найти цитируемый пост)
для его работы требуется jQuery 1.4.2, помогите ему заработать на jQuery 1.3.2.

Ого  smile  Извините за нескромный вопрос, а почему такой старый jquery надо? Сейчас же уже 1.8.0 появился.
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
Garese
Дата 14.8.2012, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сайт разрабатывался под Drupal 7, там jQuery 1.4.4. Заказчик затребовал Drupal 6, там 1.3.2 максимум. Можно конечно подгрузить более свежий и использовать jQuery.noConflict(), но не хотелось бы утяжелять страницу на 70КБ.
PM MAIL   Вверх
serezhka1986
Дата 14.8.2012, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Было бы неплохо еще опубликовать html-разметку табов.
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
Garese
Дата 14.8.2012, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

  <div class="slider_news">
    <ul class="tabs">
      <li class="current"><span>Таб 1</span></li>
      <li><span>Таб 2</span></li>
    </ul>
    <div class="clear"></div>
    <div class="contents">
      <table border="0" cellpadding="0" cellspacing="0" class="visible">
        <tr><td width="19px"></td>
          <td><div style="width:454px; overflow:hidden;">
              <div class="tabscontent visible">
                контент 1
                <div class="clear"></div>
              </div>
            </div></td>
          <td width="19px"></td></tr>
      </table>
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="19px"></td>
          <td><div class="tabscontent">
              <div style='marign:0 auto;' align='center'>
                контент 2
            </div></td>
          <td width="19px"></td>
        </tr>
      </table>
    </div>
  </div>


Вот такая разметка.

Вот еще нашел, а как приделать не знаю:

Код

$("a.offsite").live("click", function(){ alert("Goodbye!"); });  // jQuery 1.3              
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4


Это сообщение отредактировал(а) Garese - 14.8.2012, 23:52
PM MAIL   Вверх
нуп
Дата 14.8.2012, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


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

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



$('ul.tabs').live('click', function() {});
PM MAIL   Вверх
Garese
Дата 15.8.2012, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(нуп @ 14.8.2012,  23:57)
$('ul.tabs').live('click', function() {});

Не работает так
PM MAIL   Вверх
нуп
Дата 15.8.2012, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


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

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



Ну так значит вешайте функцию, после создания табов.
PM MAIL   Вверх
serezhka1986
Дата 15.8.2012, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проблема, походу не в delegate, а где-то внутри самой исполняющейся функции. Код, переписанный под live работает на 1.4 (http://jsfiddle.net/H36db/1/), но не работает на 1.3 (http://jsfiddle.net/H36db/).

Это сообщение отредактировал(а) serezhka1986 - 15.8.2012, 09:09
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
serezhka1986
Дата 15.8.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



.index() походу был додан только в версии 1.4

Добавлено @ 09:52
Так вроде работает: http://jsfiddle.net/H36db/2/

Код

<div class="slider_news">
    <ul class="tabs">
      <li class="current"><span>Таб 1</span></li>
      <li><span>Таб 2</span></li>
    </ul>
    <div class="clear"></div>
    <div class="contents">
      <table border="0" cellpadding="0" cellspacing="0" class="visible">
        <tr><td width="19px"></td>
          <td><div style="width:454px; overflow:hidden;">
              <div class="tabscontent visible">
                контент 1
                <div class="clear"></div>
              </div>
            </div></td>
          <td width="19px"></td></tr>
      </table>
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="19px"></td>
          <td><div class="tabscontent">
              <div style='marign:0 auto;' align='center'>
                контент 2
              </div></div></td>
          <td width="19px"></td>
        </tr>
      </table>
    </div>
  </div>

Код

jQuery(document).ready(function(){
   $("ul.tabs li:not(.current)").live('click', 
  function() {
    jQuery(this).addClass('current').siblings().removeClass('current')
      .parents('div.slider_news').find('table').eq($(this).prevAll().length).fadeIn(150).siblings('table').hide();
  }); });


Это сообщение отредактировал(а) serezhka1986 - 15.8.2012, 10:38
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
Garese
Дата 15.8.2012, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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