【问题标题】:Jquery Sending a Method to a Function "Object [object DOMWindow] has no method 'each'"Jquery向函数发送方法“对象[对象DOMWindow]没有方法'每个'”
【发布时间】:2012-01-24 12:00:52
【问题描述】:

我在尝试创建可重用函数以将元素设置为可拖动或可放置时遇到问题。

为此工作创建 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({”)错误,此错误

Object [object DOMWindow] 没有方法'each'

我尝试了许多其他解决方案,从我读到的内容来看,这应该可以。我做错了什么?

欢迎任何帮助或指导。

谢谢

【问题讨论】:

    标签: jquery methods foreach draggable droppable


    【解决方案1】:

    当您将$('.empty_child_article_image').droppable 作为参数传递给函数时,this 对象引用将丢失。 function makedroppable 内部 -> this 将是窗口对象,而不是您的 $('.empty_child_article_image') 对象。

    因此抛出错误是因为this 对象指向window 对象,而不是可放置函数内部的$('.empty_child_article_image')

    【讨论】:

    • 感谢您的回复。有没有办法确保它正确通过?还是强迫它?
    • 作为对人们的进一步帮助,我确实让它以一种更丑陋的方式工作。这是将 droppable 作为字符串发送,然后将其包装在方括号中。 makedroppable($('.empty_child_article_image'), "droppable" , handleChildDropEvent); function makedroppable(selector, dragordrop, specificHandler) { $(selector)[dragordrop]({ drop: dropFunction, accept: '.ui-draggable', hoverClass: 'hovered' )} }
    • @user1166885 - 当您将上下文作为参数传递时,您会丢失上下文。可拖动的已被称为 $('.empty_child_article_image').draggable。
    • 好的,知道了。感谢您的知识和时间 SKS
    猜你喜欢
    • 2013-08-16
    • 2015-03-05
    • 2012-02-20
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    相关资源
    最近更新 更多