Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Некорректное поведение eq
alex12060  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Мирный
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3229
Пользователь №: 24994
На форуме: 6 лет, 11 дней
Карма: 142

Трезвый :
4 года, 11 месяцев, 2 дня


Здравствуйте :)

У меня появилась проблема, которую не могу решить уже часа 3.

В общем, я переделываю плагин, который листает вверх и вниз хтмл блоки.

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

Я приведу код с комментариями в нем, чтобы было понятно.

Суть проблемы в том, что при обычном листании - все работает хорошо. Т.е. переменная current меняет свое значение и текущий и следующий блок находятся. Но при явном указании текущего блока, путем изменения переменной current - находит текущий блок, а второй - возвращает undefined. Всё проверял, все значения меняются, все просто хорошо. Но прям дилемма.

Вот код. Буду очень благодарен помощи. А то я прям в ступоре :)

Свернутый текст



(function($){
$.fn.list_ticker = function(options) {

var defaults = {
speed:4000,
effect:'slide',
run_once:false,
random:false,
btn: '.slideCurrent',
};

var options = $.extend(defaults, options);

return this.each(function(){

var obj = $(this);
var list = obj.children();
var count = list.length;
var current = 0;

function slide() {

if (count == current) {
current = 0;
}


// закрашиваем кнопки

$('ul.sliderNav li.current').removeClass('current');
$( 'ul.sliderNav li.slide-' + current ).addClass('current');

var first_li = list.eq(current);// получаем текущий блок
var second_li = list.eq( (current+1 == count) ? 0 : current+1); // получаем следующий блок

// alert(current + ' - ' + second_li.html()); // при задании из вне: 2 - undefined


if(options.effect == 'slide'){
first_li.slideUp();
second_li.slideDown(function(){

// alert('N - ' + current); // при задании из вне: не отрабатывает

});
} else if(options.effect == 'fade'){
first_li.fadeOut(function(){
obj.css('height',second_li.height());
second_li.fadeIn();
current++;
});
}

current++;

}

$(options.btn).click(function(e) {
e.preventDefault();

current = $(this).attr('data-el'); // значение получаем

slide();
});


list.hide(); // скрываем блоки

var interval = setInterval(function(){

slide();

}, options.speed)
});
};
})(jQuery);

PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 16 дней
Карма: 170




Лучше бы показал страничку где этот код задействован.


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alex12060  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Мирный
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3229
Пользователь №: 24994
На форуме: 6 лет, 11 дней
Карма: 142

Трезвый :
4 года, 11 месяцев, 2 дня


T1grOK

ph34r.gif

Пока готовил тебе пример, я понял, что я дурак и пора отдыхать biggrin.gif

Просто нужно было поменять цифры местами, а точнее, я перепутал, так сказать, слайды.
Эх, а я уже другой код от руки писать начал biggrin.gif

Проблема решена!
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса