За последние 24 часа нас посетили 16048 программистов и 1539 роботов. Сейчас ищут 903 программиста ...

помогите новичку по JQuery

Тема в разделе "JavaScript и AJAX", создана пользователем MCTrane, 27 окт 2010.

  1. MCTrane

    MCTrane Активный пользователь

    С нами с:
    14 ноя 2009
    Сообщения:
    217
    Симпатии:
    0
    Дело в том что я хочу сделать вылетающие подсказки при наводе на объект, нашёл урок, но там не учтено то что может быть много объектов и подсказок для них. Вот у меня к примеру при нажатии выводиться из бд товары(их может быть разное кол-во). Неужели придётся код JQuery копировать столько сколько товаров? Или можно как нибудь через функцию? Пробавал так:
    [js]function info_item(pop) {
    $(function () {
    // options
    var distance = 10;
    var time = 250;
    var hideDelay = 500;
    var pop=".divs_"+pop;
    var trig=".item_"+pop;
    var hideDelayTimer = null;

    // tracker
    var beingShown = false;
    var shown = false;

    var trigger = $(trig, this);
    var popup = $(pop, this).css('opacity', 0);

    //наводим на элемент
    $([trigger.get(0), popup.get(0)]).mouseover(function () {
    // показывать элемент
    if (hideDelayTimer) clearTimeout(hideDelayTimer);

    // не вызывают анимации снова, если уже виден
    if (beingShown || shown) {
    return;
    } else {
    beingShown = true;

    // сбросить позиции всплывающее окно
    popup.css({
    top: -100,
    left: -33,
    display: 'block' // Приносит всплывающих назад, чтобы посмотреть
    })

    // (we're using chaining on the popup) now animate it's opacity and position
    .animate({
    top: '-=' + distance + 'px',
    opacity: 1
    }, time, 'swing', function() {
    // once the animation is complete, set the tracker variables
    beingShown = false;
    shown = true;
    });
    }
    }).mouseout(function () {
    // reset the timer if we get fired again - avoids double animations
    if (hideDelayTimer) clearTimeout(hideDelayTimer);
    hideDelayTimer = setTimeout(function () {
    hideDelayTimer = null;
    popup.animate({
    top: '-=' + distance + 'px',
    opacity: 0
    }, time, 'swing', function () {
    //отслеживаем переменные
    shown = false;

    popup.css('display', 'none');
    });
    }, hideDelay);
    });
    });
    }[/js]

    И HTML(Это один из объектов)

    HTML:
    1. <div class="item_12" onmouseover='info_item(12)'></div>
    Вот так у меня ничего не получилось(
    Подскажите можно как нибудь такое реализовать? Или поправте что я сделал не так в коде, если хоть что-то правильно?
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Весь код не читал, но навскидку

    onmouseover="info_item('12')"