ok, if I understand you correctly, I'd add a class (e.g. menu-option)  
to the link and then use a more "jQuery-ish" approach. Something like  
this should do

   $(document).ready(function() {
     var $mailMenu = $('#mailMenu');
     $('.menu-option').click(function() {
       var $menuOption = $(this);
       if ($mailMenu.is(':hidden')) {
         var top = $menuOption.offset().top - $menuOption.height(),
             left = $menuOption.offset().left;
         $mailMenu.css({top: top, left: left}).show();
       } else {
         $mailMenu.hide();
       }
       return false;
     });
   });

Also, for future reference, this sort of question is better asked on  
the jquery-en Google Group. The jquery-dev group is for questions  
about the development of jQuery itself rather than its use.



--Karl

____________
Karl Swedberg
www.englishrules.com
www.learningjquery.com




On Jul 27, 2009, at 4:48 PM, GONNY wrote:

>
> No calling mouse pointer position is wrong. I want to show menu above
> the link and aligned.
>
> this is all code:
> function EBID(k)
> {
>   return(document.getElementById(k));
> }
> function hideMailMenu(e)
> {
>   var mailMenu = EBID('mailMenu');
>   mailMenu.style.display = 'none';
> }
> function showMailMenu(e)
> {
>   document.onmouseup = hideMailMenu;
>   var mailMenu = EBID('mailMenu');
>   mailMenu.style.left = e.clientX + 'px';
>   mailMenu.style.top = e.clientY + 'px';
>   mailMenu.style.display = '';
> }
>
>
> HTML:
> Code:
>
> <a href="#" onclick="showMailMenu(event);"> Menu option</a>
> <div id="mailMenu" class="mailMenu"
> style="display:none;position:absolute;left:0px;top:0px;">
> some items
> </div>
>
>
>
> On 27 Lug, 22:41, Karl Swedberg <k...@englishrules.com> wrote:
>> you still haven't clarified what you're trying to do. Are you trying
>> to get the mouse position or the offset coordinates of the moused  
>> over
>> element?
>> And where are you calling the showMenu function?
>>
>> --Karl
>>
>> On Jul 27, 2009, at 3:37 PM, GONNY wrote:
>>
>>
>>
>>
>>
>>> function showMenu(e)
>>> {
>>> document.onmouseup = hideMenu;
>>> var mailMenu = EBID('mailMenu');
>>> /*
>>> var offset = e.offset();
>>> or
>>> var offset = mailMenu.offset();
>>> */
>>> mailMenu.style.left = offset.left + 'px';
>>> mailMenu.style.top = offset.top + 'px';
>>> mailMenu.style.display = '';
>>> }
>>> not work :(
>>
>>> can give me an example how can do it.
>>
>>> On 27 Lug, 15:36, Karl Swedberg <k...@englishrules.com> wrote:
>>>> On Jul 27, 2009, at 8:20 AM, GONNY wrote:
>>
>>>>> e.clientY and eclientx not work properly.
>>
>>>> Your subject refers to offset left/top, but it looks like your
>>>> function is trying to get the mouse coordinates (e.clientX/ 
>>>> e.clientY)
>>
>>>> for offset, use jQuery's offset method:
>>
>>>> http://docs.jquery.com/CSS/offset
>>
>>>> for mouse coordinates, use e.pageX and e.pageY:
>>
>>>> http://docs.jquery.com/Events/jQuery.Event#event.pageX.2FY
>>
>>>> This article may help explain why e.clientX/e.clientY aren't  
>>>> working
>>>> for you:
>>
>>>> http://www.quirksmode.org/js/events_properties.html#position
>>
>>>> "As to the mouse position, the situation is horrible. Although  
>>>> there
>>>> are no less than six mouse coordinates property pairs, there is no
>>>> reliable cross–browser way to find the mouse coordinates relative  
>>>> to
>>>> the document we need."
>>
>>>> --Karl
>>
>>>> ____________
>>>> Karl Swedbergwww.englishrules.comwww.learningjquery.com- Nascondi  
>>>> testo citato
>>
>> - Mostra testo citato -
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to