Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2015, 13:25   #1
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Вопрос Супермаленький вопрос

Ползунок должен бегать по линии, куда ткнёт пользователь.
В Chrome, Opera и даже Explorer работают, FireFox отказывается выполнять, пишет, что x undefined. Скажите, как поправить/дополнить скрипт, чтобы FireFox тоже понимал, о чем идет речь? ))
Код:
$(document).ready(function () {
	$('.jsLevel__slider').click(function (e) {
        var x = e.offsetX==undefined?e.layerX:e.offsetX;
        $('.jsLevel__slider_pols').animate({'margin-left':x-10});
        console.log(x);
    });
});
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 31.03.2015, 13:45   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Попробовал ваш код такая же беда.

Не претендую на правильность но думаю поможет:

Код:
	$('.jsLevel__slider').click(function (e) {
        var x = e.offsetX==undefined?e.layerX:e.offsetX;
		
		if(e.offsetX==undefined) // this works for Firefox
		{
			xpos = e.pageX-$('.jsLevel__slider').offset().left;
			ypos = e.pageY-$('.jsLevel__slider').offset().top;
		}             
		else                     // works in Google Chrome
		{
			xpos = e.offsetX;
			ypos = e.offsetY;
		}
		
        $('.jsLevel__slider_pols').animate({'margin-left':x-10});
        console.log(xpos);
    });
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 31.03.2015 в 13:49.
Stanislav вне форума Ответить с цитированием
Старый 31.03.2015, 13:50   #3
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
==undefined
а если это убрать?
lomastr_ вне форума Ответить с цитированием
Старый 31.03.2015, 14:02   #4
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
а если это убрать?
в лисе в консоле не наблюдается layerX, offsetX

Код:
			
altKey
	
	false
attrChange
	
	undefined
attrName
	
	undefined
bubbles
	
	true
button
	
	0
buttons
	
	0
cancelable
	
	true
clientX
	
	407
clientY
	
	98
ctrlKey
	
	false
currentTarget
	
	div.jsLevel__slider
data
	
	null
delegateTarget
	
	div.jsLevel__slider
eventPhase
	
	2
fromElement
	
	undefined
handleObj
	
	Object { type="click", origType="click", guid=20, ещё...}
jQuery17208409080743666639
	
	true
metaKey
	
	false
offsetX
	
	undefined
offsetY
	
	undefined
originalEvent
	
	click clientX=407, clientY=98
pageX
	
	407
pageY
	
	98
relatedNode
	
	undefined
relatedTarget
	
	null
screenX
	
	2327
screenY
	
	195
shiftKey
	
	false
srcElement
	
	undefined
target
	
	div.jsLevel__slider
timeStamp
	
	23062641
toElement
	
	undefined
type
	
	"click"
view
	
	Window o3
which
	
	1
isDefaultPrevented
	
	J()
isImmediatePropagationStopped
	
	J()
isPropagationStopped
	
	J()
preventDefault
	
	function()
stopImmediatePropagation
	
	function()
stopPropagation
	
	function()
__proto__
	
	Object { preventDefault=function(), stopPropagation=function(), stopImmediatePropagation=function(), ещё...}
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 31.03.2015, 15:18   #5
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Хорошо

Класс! Переменные чуть поправил, и всё заработало.
Тут выкладываю, может быть, кому-то понадобится.
Код:
$(document).ready(function () {
	$('.jsLevel__slider').click(function (e) {
        var x = e.offsetX==undefined?e.layerX:e.offsetX;
		if(e.offsetX==undefined) // this works for Firefox
		{
			x = e.pageX-$('.jsLevel__slider').offset().left;
		}             
		else                     // works in Google Chrome
		{
			x = e.offsetX;
		}
        $('.jsLevel__slider_pols').animate({'margin-left':x-10});
    });
});
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 31.03.2015, 15:41   #6
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Поздравляем!
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 31.03.2015, 15:41   #7
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
в лисе в консоле не наблюдается layerX, offsetХ
ааа, так в жиквери есть http://api.jquery.com/offset/ не оно?
lomastr_ вне форума Ответить с цитированием
Старый 31.03.2015, 15:44   #8
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
ааа, так в жиквери есть http://api.jquery.com/offset/ не оно?
что то читал на SO там какой то баг был, может от версии жиквери зависит, вообщем я дальше не стал читать, т.к на англ. после 2 не читаю уже.

p.s Если вам интересно можете сами попробовать, автор уже доволен
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос 123456789igor Паскаль, Turbo Pascal, PascalABC.NET 2 04.05.2011 16:42
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10