Jquery Отправка метода в функцию «У объекта [объекта DOMWindow] нет метода« каждый »» - PullRequest
2 голосов
/ 24 января 2012

У меня возникла проблема при попытке создать повторно используемую функцию для настройки элементов как перетаскиваемых или сбрасываемых.

Создание 2 отдельных функций для этой работы:

makedroppable($('.empty_child_article_image'), handleChildDropEvent);

или

makedraggable($('.empty_related_article_image'), handleAlternativeDragEvent);


function makedroppable(droppableClass, specificHandler){   
  droppableClass.droppable( {
    drop: specificHandler,
    hoverClass: 'hovered'
  });  
};

или

function makedraggable(droppableClass, specificHandler){   
      droppableClass.draggable( {
        drop: specificHandler,
        hoverClass: 'hovered'
      });  
    };

Это, однако, не работает:

makedroppable($('.empty_child_article_image').droppable, handleChildDropEvent);

    function makedroppable(dragordrop_func, specificHandler) {
       dragordrop_func({
       drop: function(){specificHandler.apply($ ,specificHandler)},
       hoverClass: 'hovered',
     }); 
    }

И я получаю сообщение об ошибке «dragordrop_func ({» с этой ошибкой в ​​моей консоли

Объект [объект DOMWindow] не имеет метода «каждый»

Я пробовал ряд других решений, и из того, что я прочитал, это должно работать. Что я делаю не так?

Любая помощь или руководство приветствуются.

Спасибо

1 Ответ

1 голос
/ 24 января 2012

Ссылка на объект this теряется, когда вы передаете $('.empty_child_article_image').droppable в качестве аргумента функции.Внутри function makedroppable -> this будет объект окна, а не ваш $('.empty_child_article_image') объект.

И поэтому выдается ошибка, поскольку объект this указывает на объект window, а не на $('.empty_child_article_image') внутри капельной функции.

...