Показать сообщение отдельно
  #1 (permalink)  
Старый 27.05.2014, 01:10
Аватар для Daniil94
Новичок на форуме
Отправить личное сообщение для Daniil94 Посмотреть профиль Найти все сообщения от Daniil94
 
Регистрация: 16.01.2012
Сообщений: 9

Две одинаковые функции
Короче беда с слушателями событий
есть jquery код функции для горизонтального ползунка
function setSliderH(obj, funcDraw)
 {	
	var length=obj.width();
	var offset=obj.offset().left;
	obj.bind('mousedown', function(e){
		relative = (e.pageX - offset);
		funcDraw(relative/length*100);
		obj.bind('mousemove', function(e){
			relative = (e.pageX - offset);
			funcDraw(relative/length*100);
		});
	
	});

	obj.bind('mouseup mouseover', function(){
	obj.unbind( "mousemove" );
	});	
}



Есть почти идентичная функция для вертикального
function setSliderV(obj, funcDraw)
 {
	var length=obj.height();
	var offset=obj.offset().top;
	obj.bind('mousedown', function(e){
		relative = (e.pageY - offset);
		funcDraw(relative/length*100);
		obj.bind('mousemove', function(e){
			relative = (e.pageY - offset);
			funcDraw(relative/length*100);
			});
		});
 
	$("body").bind('mouseup', function(){
	obj.unbind( "mousemove" );
	});
 }



И вот который день мне не даёт покоя мысль, что этот код никуда не годится. Как объединить эти две функции в одну?
пробовал делать что то типо
function setSliderV(obj, funcDraw, vert)
{
        var length=obj.height();
	if (vert) var offset=obj.offset().top; else var offset=obj.offset().left; 
	obj.bind('mousedown', function(e){
		if (vert) ... else relative = (e.pageY - offset);
		....
		obj.bind('mousemove', function(e){
			if (vert) ... else relative = (e.pageY - offset);
			...
			});
		});
 
...
	});
}


При таком варианте как я понял, при каждом событии он смотрит на vert а оно хз какое и происходят чудеса)

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