Неперехваченная ошибка типа: не удается прочитать свойство «направление» неопределенного

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

Я создаю игру с памятью. Я хочу перевернуть карты (divs), чтобы сделать его более реалистичным. Для перелистывания я использую ЭТОТ плагин. проблема в том, что переворачивание карты не работает. Я получил эту ошибку из консоли:

 Uncaught TypeError: Cannot read property 'direction' of undefined 
 

Вы можете увидеть мой код здесь: JSFIDDLE

РЕДАКТИРОВАТЬ 1:

Полный журнал ошибок:

 Uncaught TypeError: Cannot read property 'direction' of undefined VM24:1
(anonymous function) VM24:1
m.extend.each jquery.min.js:2
m.fn.m.each jquery.min.js:2
$.fn.flip VM24:1
OpenCard mem.js:94
m.event.dispatch jquery.min.js:3
r.handle
 

Эта функция использует функцию flip () включенного плагина Jquery Flip:

 function OpenCard() {
    var id = $(this).attr("id");

    if ($("#"   id   " img").is(":hidden")) {
        $(Source   " div").unbind("click", OpenCard);

        $("#"   id   " img").flip();

        if (ImgOpened == "") {
            BoxOpened = id;
            ImgOpened = $("#"   id   " img").attr("src");
            setTimeout(function() {
                $(Source   " div").bind("click", OpenCard)
            }, 300);
        } else {
            CurrentOpened = $("#"   id   " img").attr("src");
            if (ImgOpened != CurrentOpened) {
                setTimeout(function() {
                    $("#"   id   " img").flip();
                    $("#"   BoxOpened   " img").flip();
                    BoxOpened = "";
                    ImgOpened = "";
                }, 400);
                Counter-=10;
                wrong.play();
            } else {
                $("#"   id   " img").parent().css("disabled", "disabled");
                $("#"   BoxOpened   " img").parent().css("disabled", "disabled");
                ImgFound  ;
                BoxOpened = "";
                ImgOpened = "";
                Counter =100;
                correct.play();
            }
            setTimeout(function() {
                $(Source   " div").bind("click", OpenCard)
            }, 400);
        }
        $("#counter").html(""   Counter);

        if (ImgFound == ImgSource.length) {
        clearInterval(timer);
        alert ("Your score is " Counter);
        }
    }
}
 

Может кто-нибудь сказать мне, почему я получаю эту ошибку и как ее исправить

Комментарии:

1. Ошибка где-то в другом месте. Найдите foo.direction , где foo не определено.

Ответ №1:

Вам не хватает объекта settings:

 $("#"   id   " img").flip({direction: 'lr'});
 

Вы можете получить несколько примеров на странице плагина.

Комментарии:

1. Спасибо за ваш ответ @Salem. Я пробовал этот код раньше, и он не работает в моем случае.

2. Вы уверены? Я запустил ваш код, и это единственная проблема, которую я обнаружил (если вы пытаетесь использовать скрипку, которую вы указали, ссылка на flip библиотеку неверна)

3. не могли бы вы, пожалуйста, дать мне ссылку на ваш jsFiddle? Я пробовал, и это не работает. Включали ли вы другие библиотеки помимо плагина jquery и flip?

4. Также я попробовал на своем компьютере, и ошибка исчезла, но элементы div не перевернулись