2011-05-11 3 views
3

나는 요소의 목록을 하나 하나 클릭 할 때 내가 클릭 한 다음에 목록 요소를 나타 내 jQueryUI 대화 상자를 싶습니다 .어떻게 JQuery와 UI 대화 상자에 요소의 위치를 ​​통과 할

$("#selector").dialog({ draggable: false, 
       width: 250, 
       autoOpen: false, 
       position: [e.pageX,e.pageY] }); 

$(".openDialog").click(function(e){ 
     console.log('I need the cooridnates x:'+e.pageX+' and y:'+e.pageY+'to be passed to the dialog box'); 
     $("#selector").dialog("open"); 
}); 

필요한 좌표를 얻을 수 있지만 대화 초기화에 전달하는 데 문제가 있습니다.

이것에 대한 통찰력이 있습니다.

미리 감사드립니다.

답변

5

, 당신은 그 정보가 이벤트 처리기에서 즉, 이용 가능하게 될 때까지 대화 상자의 위치를 ​​설정 연기한다 :

$("#selector").dialog({ 
    draggable: false, 
    width: 250, 
    autoOpen: false 
}); 

$(".openDialog").click(function(e) { 
    $("#selector").dialog("option", "position", [e.pageX, e.pageY]) 
        .dialog("open"); 
}); 
+0

muchas gracias! – jackreichert

+1

참고 : 향후 검색자를위한 참조. clientX/Y는 마우스 위치를 원한다면 pageX/Y보다 더 나은 alt입니다. – jackreichert

2

다시 대화 상자를 표시하기 전에 시도 : 당신이 클릭 된 요소 옆에있는 대화 상자를 표시 할 때문에

$("#selector").dialog("option", "position", [e.pageX, e.pageY]); 
관련 문제