模块模式$ .bind无效

时间:2013-08-20 11:19:29

标签: javascript

我是javascript模块模式的新手,不能让这样的东西工作,我错过了什么? $ .bind不会给出任何错误,dropBox也不是NULL。

 var Application = (function(d, w, $) {

    var drop, dragStart, dragEnter, dragOver, dragLeave;

    drop = function(e) {
    };

    dragStart = function(e) {
    };

    dragEnter = function(e) {
    };

    dragOver = function(e) { 
    };

    dragLeave = function(e) {  
    };

    return {

        init: function() {

            var dropBox = $('#someid');
            dropBox.bind('dragstart', dragStart);
            dropBox.bind('dragenter', dragEnter);
            dropBox.bind('dragover', dragOver);
            dropBox.bind('drop', drop);
            dropBox.bind('dragleave', dragLeave);
        }
    };

})(document, window, window.jQuery);

1 个答案:

答案 0 :(得分:0)

使用(function(...) {})(...);,您只调用声明的函数,该函数返回具有init()成员的对象。只要您不调用init()成员函数,就不会发生任何事情。

您应该在文档就绪事件中调用Application.init()

$(function() {
    Application.init();
});

如果过早调用它,$('#someid')将为空。

除此之外,您的问题中的代码没有任何问题。见jsFiddle