И снова про координаты мыши
Здравствуйте, люди добрые, уже всё облазил, подскажите, плиз почему не могу найти координаты мыши:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Jeer.aspx.cs" Inherits="Jeer" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"> </script> </head> <body> <form id="form1" runat="server"> <div id="granica" style="position:absolute; width:99%; height:99%; cursor: pointer;"> </div> <script type="text/javascript"> $("#granica").mousemove(function (e) { var pCoords = "( "+e.pageX+", "+e.pageY+" )"; var cCoords = "( "+e.clientX+", "+e.clientY+" )"; }; </script> </form> </body> </html> -------------------- e.pageX, e.clientX говорит что не существует |
Вот такая есть функция для позиции мыши:
function posMouse(e){ var mouX = 0, mouY = 0; if (!e) e = window.event; if (e.pageX || e.pageY) { mouX = e.pageX; mouY = e.pageY; } else if (e.clientX || e.clientY) { mouX = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft; mouY = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop; } return {"x":mouX, "y":mouY} } Возвращает объект со свойствами x и y - координаты мыши. |
Цитата:
|
Цитата:
Код рабочий. |
Цитата:
|
Для не-IE эта строка ничем не навредит, window.event берётся только при условии, что event-объект не передаётся в обработчике.
|
да при чем тут браузер? =) вижуал студия не видит window.event
|
И event-объект тоже не видит?
|
не видит!
|
Цитата:
|
Цитата:
|
а, то есть Вы хотите сказать, что этот код работает, хоть и не распознаётся, так? Если вижуал студия не видит, я так понимал, что она пропускает этот кусок на мимо. И работает только в ИЕ, как писалось раньше, все ясно теперь. А что тогда с другими браузерами? Как-то это неправильно, что в ИЕ можно узнать координаты, а в опере или ФФ нельзя.
|
Вам kostr дал кроссбраузерное решение.
|
Цитата:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"> </script> </head> <body> <form id="form1" runat="server"> <div id="granica" style="position:absolute; width:99%; height:99%; cursor: pointer;"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> <script type="text/javascript"> $("#granica").mousedown(function () { var mouX = 0, mouY = 0; if (!e) e = window.event; if (e.pageX || e.pageY) { mouX = e.pageX; mouY = e.pageY; } else if (e.clientX || e.clientY) { mouX = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft; mouY = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop; } $("#Label1").text("mouX-" + mouX + "mouY-" + mouY); }); </script> </form> </body> </html> ----------------------------- У меня есть div (id="granica") который занимает всю страницу. В него добавлен Label (ID="Label1"). При нажатии в любом месте экрана должны в Лэйбл вывестись координаты нажатой кнопки, НО! этого не происходит, в браузере пишет в низу желтый треугольник с черным восклицательным знаком и сообщением "Ошибка на странице". Это происходит из-за того, что if (!e) e = window.event; не определено. |
Это происходит из-за того, что вы приведённый пример не полностью скопировали.
|
Цитата:
крутяк, ребят, просто надо было поспать пару дней, действительно работает, а я уже впал в уныние =) спасибо большое! |
Часовой пояс GMT +3, время: 17:07. |