2012-09-25 3 views
0

글쎄, 문제가 있습니다. 이벤트 입력을 전달하지 않고 클릭 좌표를 어떻게 얻을 수 있습니까? 수정 된 window.confirm 함수를 사용하여 확인 작업이 트리거 될 때 좌표를 가져 오려고하기 때문에 Firefox에서 작동하는 방법을 알아낼 수 없습니다. EX는 :이벤트 입력을 거치지 않고 클릭시 x, y 좌표 가져 오기

<a onclick="if (confirm('Are you sure?')) document.location='....'; return false;" href="javascript:void(1);"></a> 

이 코드 크롬에서 작동하지만, 분명히 FF에서 내가 onClick="getCoords(event);"처럼 comething 사용할 수 있습니다

window.confirm = function() { 
    if (arguments[0]) 
    { 
     text_confirm = arguments[0]; 
     x_pos = window.event.clientX; 
     y_pos = window.event.clientY; 
    } 
} 

이에 triggerd입니다. 그리고 window.irm에 덮어 쓰기 안의 이벤트 입력을 보낼 수 없습니다.

또 다른 방법은 감사하지만 이것을 알고있다 :

을! onClick 버튼의 동작을 변경할 수 없으며 window.confirm() 만 있어야합니다 !!

+1

두 번째 처리기를 바인딩하고 해당 '이벤트'를 사용하여 x, y 위치를 검색 할 수 있습니까? 그렇다면 당신은 그것을 어딘가에 저장할 수 있고 당신의 확인 기능에 그것을 사용할 수 있습니다. – Shikyo

+0

네가 맞습니다. 할 수는 있지만 추천하지는 않습니다. 다른 해결책이 없다면 아마 이것을 할 것입니다. – Cosmin

+0

Ty Shikyo, 다행스럽게도 링크가'sprintf (DELETE, $ url_delete) '를 사용하여 생성 되었기 때문에 onClick 이벤트를 변경할 수 있습니다. 그리고 확인 작업 앞에 다른 함수를 삽입하여 코드를 가져올 수 있습니다. – Cosmin

답변

0

당신은 단순히 변수에 좌표를 저장하고 기능에서 사용할 수 있습니다 :이 노드와 HTML로 액세스 할 수없는 경우

var coords = getCoords(event); if (confirm('Are you sure?')) { // use stored coords and stuff ... } 

것은, 당신이 당신의 코드에서 리스너를 다시 정의 할 수 있습니다 :

$('#element').click(function(event) { 
    if (!confirm('are you sure?')) 
    return false; 

    getCoords(event); 
    // ... 

    return false; 
}); 
+0

엘리먼트에 id를 붙이는 것은 불가능하기 때문에 페이지 당 처리해야 할 항목이 많기 때문에이 방법은 효과가 없습니다. – Cosmin