ReferenceError: Firefox에서 이벤트가 정의되지 않았습니다.
저는 고객을 위해 페이지를 만들었고 처음에는 크롬에서 작업하다가 파이어폭스에서 작동하는지 확인하는 것을 잊었습니다.저는 큰 문제가 있습니다. 왜냐하면 모든 페이지가 파이어폭스에서 작동하지 않는 스크립트를 기반으로 하기 때문입니다.
이는 다음을 포함하는 모든 "링크"를 기반으로 합니다.rel
숨어서 올바른 페이지를 보여주는 것으로 이어집니다.파이어폭스에서 왜 이것이 작동하지 않는지 이해할 수 없습니다.
예를 들어 페이지에 ID가 있습니다.#menuPage
,#aboutPage
등등.모든 링크에 다음 코드가 있습니다.
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
크롬과 사파리에서 완벽하게 작동하고 있습니다.
코드는 다음과 같습니다.
$(document).ready(function(){
//Main Navigation
$('.menuOption').click(function(){
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
// HIDES and showes the right starting menu
$('.all').hide();
$('.pizza').show();
// Hides and shows using rel tags in the buttons
$('.menyCat').click(function(event){
event.preventDefault();
var categori = $(this).attr('rel');
$('.all').hide();
$(categori).fadeIn();
$('html,body').scrollTo(0, categori);
});
});
이벤트 핸들러를 잘못 선언하고 있습니다.
$('.menuOption').click(function( event ){ // <---- "event" parameter here
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
핸들러에 대한 매개 변수가 되려면 "이벤트"가 필요합니다.WebKit는 "이벤트"에 글로벌 기호를 사용하는 IE의 오래된 동작을 따르지만 Firefox는 그렇지 않습니다.jQuery를 사용하는 경우 해당 라이브러리는 동작을 표준화하고 이벤트 핸들러가 이벤트 매개 변수를 전달하도록 합니다.
편집 - 명확하게 하기 위해: 일부 매개 변수 이름을 제공해야 합니다; 사용event
당신이 의도하는 바를 분명히 하지만, 당신은 그것을 부를 수 있습니다.e
또는cupcake
아니면 다른 것들.
또한 Chrome 및 IE 및 Safari에서 "네이티브" 매개 변수 대신 jQuery에서 전달된 매개 변수를 사용해야 하는 이유는 해당 매개 변수가 네이티브 이벤트 개체 주위의 jQuery 래퍼이기 때문입니다.래퍼는 브라우저 전체에서 이벤트 동작을 표준화하는 역할을 합니다.만약 당신이 글로벌 버전을 사용한다면, 당신은 그것을 이해할 수 없습니다.
당신이 깜빡하고 안 들어왔기 때문입니다.event
에.click
함수:
$('.menuOption').on('click', function (e) { // <-- the "e" for event
e.preventDefault(); // now it'll work
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
참고로,e
는 단어와 반대로 더 일반적으로 사용됩니다.event
부터Event
는 대부분의 브라우저에서 전역 변수입니다.
언급URL : https://stackoverflow.com/questions/20522887/referenceerror-event-is-not-defined-error-in-firefox
'programing' 카테고리의 다른 글
RecyclerView with GridLayoutManager를 사용한 간단한 Android 그리드 예제(이전의 GridView와 동일) (0) | 2023.08.23 |
---|---|
mariadb 통신 패킷을 읽는 중 오류 발생 (0) | 2023.08.23 |
서브모듈 내부의 Git 서브모듈(내포 서브모듈) (0) | 2023.08.23 |
angular2로 인터페이스를 주입할 수 있습니까? (0) | 2023.08.23 |
jQuery에서 버튼 클릭 이벤트를 처리하는 방법? (0) | 2023.08.23 |