Firefox возвращает ошибку - ReferenceError: event.currentTarget не определено [дубликат]

У меня была та же проблема. Android-эмулятор отлично работал на Android & lt; = 6.0. Когда я пробовал эмулятор Nexus 5 (Android 6.0), приложение работало очень медленно с I/Choreographer: Skipped frames в журналах.

Итак, я решил эту проблему, изменив в опции Manifest file hardwareAccelerated значение true например:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application android:hardwareAccelerated="true">
        ...
    </application>
</manifest>
90
задан Adrian Mann 13 January 2016 в 16:19
поделиться

2 ответа

Это потому, что вы забыли пройти в 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 является глобальной переменной в большинстве браузеров.

47
ответ дан Mark Pieszak - DevHelp.Online 17 August 2018 в 15:34
поделиться
  • 1
    ... кроме Firefox, конечно! Не имеет смысла использовать название «событие». для параметра, поскольку это не зарезервированное слово или что-то еще. – Pointy 11 December 2013 в 17:28
  • 2
    Очень правдиво, я думаю, я просто взял e из jQuery! @Pointy – Mark Pieszak - DevHelp.Online 11 December 2013 в 17:29
  • 3
    Он работал в первой попытке, thanx – Amit 9 October 2016 в 15:26

Вы неправильно объявляете (некоторые из) обработчиков событий:

$('.menuOption').click(function( event ){ // <---- "event" parameter here

    event.preventDefault();
    var categories = $(this).attr('rel');
    $('.pages').hide();
    $(categories).fadeIn();


});

Для обработчиков вам нужно «событие». WebKit следует за старым поведением IE использования глобального символа для «события», но Firefox этого не делает. Когда вы используете jQuery, эта библиотека нормализует поведение и гарантирует, что обработчики событий передаются параметром события.

изменить & mdash; для уточнения: вы должны указать имя параметра ; используя event, дает понять, что вы намереваетесь, но вы можете называть его e или cupcake или что-то еще.

Обратите внимание также, что причина, по которой вы, вероятно, должны использовать параметр, переданный из jQuery вместо «родной» (в Chrome и IE и Safari) заключается в том, что один (параметр) является оберткой jQuery вокруг собственного объекта события. Обертка - это то, что нормализует поведение событий в браузерах. Если вы используете глобальную версию, вы этого не получите.

121
ответ дан Pointy 17 August 2018 в 15:34
поделиться
  • 1
    Большое спасибо. meteor.js использует много событийных варов. function () {.... без прохождения события все еще работает в хромированном и сафари. однако firefox потерпит неудачу. – Jimmy M.G. Lim 2 March 2014 в 19:28
Другие вопросы по тегам:

Похожие вопросы: