Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2014, 21:12
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Как применить один и тот же скрипт на странице два раза, с разными значениями
Я весь код не буду писать, только нужные куски. И так, меню должно вести себя по разному, в зависимости от скроллинга, а именно:

$(function(){
    $(window).scroll(function() {
        var top = $(document).scrollTop();
        if (top < 174) $(".nav-wrap").css({top: '0', position: 'relative'}),
             $("#cssmenu > ul ul#cm-cur").addClass( "cm-cur" ); //выпадающее подменю делаю видимым

        else $(".nav-wrap").css({top: '0px', position: 'fixed'}),
             $("#cssmenu > ul ul#cm-cur").removeClass( "cm-cur" ); // при скроллинге вып.меню прячется, и видно только по ховеру на пункт главного меню
    });
});


И есть такой кусок:

$( "#cssmenu > ul li.active#drop" ).mouseout(function() {
    t = setTimeout(function(){ 
        $("li.cur-page#drop").css({background: '#EDF1F7'});
        }, 2000);
});


Событие mouseover одинаковое (его не пишу), но mouseout хочу сделать разный, примерно так:

$(function(){
    $(window).scroll(function() {
       var top = $(document).scrollTop();
       if (top < 174) $(".nav-wrap").css({top: '0', position: 'relative'}),
            $("#cssmenu > ul ul#cm-cur").addClass( "cm-cur" ), //выпадающее подменю делаю видимым
            $( "#cssmenu > ul li.active#drop" ).mouseout(function() { // Вот первый раз этот кусок вставил
                t = setTimeout(function(){ 
                    $("li.cur-page#drop").css({background: '#EDF1F7'});
                    }, 2000);
            });

       else $(".nav-wrap").css({top: '0px', position: 'fixed'}),
            $("#cssmenu > ul ul#cm-cur").removeClass( "cm-cur" ), // при скроллинге вып.меню прячется, и видно только по ховеру на пункт главного меню
            $( "#cssmenu > ul li.active#drop" ).mouseout(function() { // и снова этот кусок, но с другими значениями
                t = setTimeout(function(){ 
                    $("li.cur-page#drop").css({background: 'none'}),
                    $("#cssmenu > ul li ul#cm-cur").removeClass( "cm-cur" ); // Из-за этого условия весь сыр-бор - пытаюсь при mouseout сделать задержку, чтоб подменю пару секунд повисело и потом пропало
                    }, 2000);
            });
    });
});


Но нифига не работает. Помогите пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2014, 08:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,131

Сообщение от noid
Как применить один и тот же скрипт на странице два раза, с разными значениями
Для этого скрипт оформляют функциями и делают параметры...
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2014, 16:51
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Сообщение от ksa Посмотреть сообщение
Для этого скрипт оформляют функциями и делают параметры...
Я попробовал в квадратные скобки if / else - не помогло
$(function(){
    $(window).scroll(function() {
       var top = $(document).scrollTop();
       if (top < 174) {
		    $(".nav-wrap").css({top: '0', position: 'relative'}),
            $("#cssmenu > ul ul#cm-cur").addClass( "cm-cur" ), //выпадающее подменю делаю видимым
            $( "#cssmenu > ul li.active#drop" ).mouseout(function() { // Вот первый раз этот кусок вставил
                t = setTimeout(function(){ 
                    $("li.cur-page#drop").css({background: '#EDF1F7'});
                    }, 2000);
            });
	   }

       else {
		    $(".nav-wrap").css({top: '0px', position: 'fixed'}),
            $("#cssmenu > ul ul#cm-cur").removeClass( "cm-cur" ), // при скроллинге вып.меню прячется, и видно только по ховеру на пункт главного меню
            $( "#cssmenu > ul li.active#drop" ).mouseout(function() { // и снова этот кусок, но с другими значениями
                t = setTimeout(function(){ 
                    $("li.cur-page#drop").css({background: 'none'}),
                    $("#cssmenu > ul li ul#cm-cur").removeClass( "cm-cur" ); // Из-за этого условия весь сыр-бор - пытаюсь при mouseout сделать задержку, чтоб подменю пару секунд повисело и потом пропало
                    }, 2000);
            });
	   }
    });
});
// JavaScript Document

На большее меня пока не хватит
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2014, 10:29
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Сообщение от noid Посмотреть сообщение
На большее меня пока не хватит
Бида-Пичаль Для начала создаем функцию, у нее указываем изменяемые переменные (у меня это name, у вас наверное css класс будет):
function ThisName(name){
        alert('Привет ' + name + '')
      }

Потом делаем нужный обработчик события и внутри него вызываем нашу функцию с нужными параметрами:
$('body').on('click', function(){//обработчик
      var Vasya = "Вася пупкин"//меняется динамически
                 ThisName(Vasya)
    })

Оставлю здесь http://learn.javascript.ru/play/Lmlftc
Ответить с цитированием
  #5 (permalink)  
Старый 30.10.2014, 10:49
Аватар для Georka
Аспирант
Отправить личное сообщение для Georka Посмотреть профиль Найти все сообщения от Georka
 
Регистрация: 05.09.2013
Сообщений: 95

каждой функции нужно определять переменные.
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2014, 13:24
Аспирант
Отправить личное сообщение для noid Посмотреть профиль Найти все сообщения от noid
 
Регистрация: 16.09.2012
Сообщений: 38

Всем спасибо, всё получилось
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как таймер заставить работать поочерёдно вызываю одну и ту же функцию два раза? JavaScriptProgrammer Events/DOM/Window 12 08.11.2012 23:41
Функция срабатывает два раза, а должна - один pevec1 Элементы интерфейса 1 03.03.2012 04:29
Как два раза вставить таймер alexvost Общие вопросы Javascript 2 08.02.2011 02:28
jCarousel - два раза на одной странице new jQuery 0 22.04.2010 22:20
Sortable, два связанных списка. Как один из них сделать неизменяемым? kvecxjo jQuery 1 30.03.2010 03:15