2012-09-17 4 views
0

파이어 폭스에서 작동하도록 업데이트하는 일부 오래된 코드가 있는데 문제가 생겼습니다.firefox의 event.srcElement

function tableEnter() { 

    myLocation = event.srcElement; 

} 

이 파이어 폭스에서 작동하지 않습니다 : 코드에서

은 다음과 같습니다하는 기능이있다. 나는 이것을 조금 연구했지만, 발견 한 솔루션의 대부분은 이벤트가이 함수에 전달되어야하고 전달 된 e 매개 변수에 대해 작동해야합니다. ... 불행히도 업데이트중인 코드에서 매개 변수가 전달되지 않습니다.

내 함수에 매개 변수를 전달하지 않고도 firefox에서 event.srcElemet을 사용하려면 어떻게해야합니까?

편집 :

좋아, 문제가되고있다 : 어떻게 내가 내 tableEnter() 함수에 이벤트 객체를 전달합니까?

$(document).ready(function() { 
    //make table rows 
    //for every new table row... 
    myRow.onmouseover = tableEnter; (this is probably a bad name. it should be like..rowEnter. But this is the way I found the code) 
}); 

문제는 지금, 내가하는 일이 인터넷에 제안 할 수 있도록 tableEnter()로 이벤트 객체를 전달하고 어떻게 답을 : 여기

코드가 현재 무엇을하고 있는지입니다 이하.

감사합니다.

+1

이 http://stackoverflow.com/questions/5055228/defining-javascript-event-object를 참조 & 또한 당신을 참고 : 업데이트의 관점에서


, 그냥 당신의 기능 정의를 변경 다르게 이벤트 객체를 캡처해야합니다 –

답변

2

나는 이벤트 처리기의 인수가 아닌 이벤트 객체에 대한 액세스 권한을 원하는 이유를 알 수 없습니다. 그러나, 헤이, 그것은 단지 나다. 매개 변수가 지정되지 않았더라도 FF와 Chrome은 원하는대로 처리하고 이벤트 객체를 처리기에 전달합니다. 따라서 :

function tableEnter() 
{ 
    var evt = window.event || arguments[0]; 
    var src = evt.target || evt.srcElement; 
} 

그리고 그게 전부입니다. 개인적으로, 나는 전체 와이드 웹이하고있는 일을하기를 권합니다 : 당신은 FF를 사용하고 있기 때문에, 당신은 너무 많은 코딩 규칙 또는 표준의에서 분기하려고해서는 안

function handler(e) 
{ 
    e = e || window.event; 
    var target = e.target || e.srcElement; 
} 

그러나 막연한 그들은 있을지도 모른다. 적어도 어떤 표준이나 관례보다 더 낫다 전혀.

function tableEnter(e) 
{ 
    //though in jQuery, I suspect e is allready X-browser-proof 
    e = e || window.event; 
    //just leave ^^this^^ line out, and check in IE: alert(typeof e); 
    //if it alerts object, jQuery passed the event object for you 
    var theRow = this;//<-- this points to the row that triggered the mouseover 
    var jQRow = $(this);//gives you access to jQuery methods 

    var target = e.target || e.srcElement;//<-- mainly of importance in delegation 
} 
+0

위의 질문에 선명도를 추가했습니다. 귀하의 (두 번째) 솔루션을 구현하고 싶습니다. 나는 그저 올바른 방향으로 인도해야합니다. – Jeff

+0

@ 1__ : 내 대답을 업데이트했고, 의견도 좀 더 설명했습니다. –