我是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);
答案 0 :(得分:0)
使用(function(...) {})(...);
,您只调用声明的函数,该函数返回具有init()
成员的对象。只要您不调用init()
成员函数,就不会发生任何事情。
您应该在文档就绪事件中调用Application.init()
:
$(function() {
Application.init();
});
如果过早调用它,$('#someid')
将为空。
除此之外,您的问题中的代码没有任何问题。见jsFiddle