2012-10-07 1 views
2

저는 현재 작업하고있는 웹 사이트에 대한 팝업 제어 기능을 구현하려고하지만 위치를 제대로 잡을 수는 없습니다. 나는 하이퍼 링크의 센터를 얻는 다양한 방법을 시도했지만, 항상 조금 벗어났다.jQuery - 링크 중심 얻기

나는 보편적이어야하기 때문에 좌표를 하드 코드하고 싶지 않습니다. 향후에 popover를 사용할 수있는 링크로 작업해야합니다.

내가 뭘 잘못하고 있니?

여기에 내 현재의 방법입니다 :

$('#whatsthis').click(function(e) 
{ 
    var _linkLocation = $(this).offset(); 
    $('#helpTip').css('position','absolute'); 

    $('#helpTip').css('left', _linkLocation.left - $(this).width()/2); 

    $('#helpTip').fadeIn(); 
    return false; 
}); 

.. 그리고 여기에 현재의 출력입니다 :

enter image description here

답변

1

이 아래에보십시오 :

$('#whatsthis').click(function(e) { 
    var _linkLocation = $(this).offset(), $helpTip = $('#helpTip'); 
    $helpTip.offset({ 
     'left': _linkLocation.left + $(this).width()/2 - $helpTip.width()/2, 
     'top': _linkLocation.top + $(this).height() 
    }).fadeIn(); 
    return false; 
}); 
+0

제안 해 주셔서 감사합니다. 그래도 작동하지 않습니다. popover는 완전히 사라지고 링크 아래 popover 크기의 큰 공백으로 대체됩니다. 직접보기 : http://www.writeitstudios.com/myaccount/store – Pripyat

+0

'$ ('# helpTip') .css ('position', 'absolute');'(코드에서 누락되었습니다.), popover는 올바른 위치에 있지만 이전보다 링크 중심에서 더 멀리 떨어져 있습니다. – Pripyat

+1

@Prypiat 내 고정 버전을 사용해보십시오, 이전 버전은 helpTip 자체의 너비를 놓쳤습니다. – xdazz

3

괄호를 사용하여 당신이 그것을 반 전에 델타를 얻을 수 있도록.

(_linkLocation.left - $(this).width())/2 

그렇지 않으면, 연산자 우선 순위는 첫째 폭의 결과에 / 2을 결합하고 당신에게 잘못된 결과를 제공 할 것입니다.

+0

이 문제이어야한다, 그 링크의 중심에 팁의 중심을 배치하고자합니다. – xdazz