求解下面代码的return和其中的一个()
<div class="draggable" style="position:absolute; width:100px; height:100px; background-color:#FF0000"></div>
<script type="text/javascript">
var eventUtil={
addHandler: function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on" + type, handler);
}else{
element["on" + type] = handler;
}
},
getEvent:function(event){
return event ? event : window.event;
},
getTarget:function(event){
return event.target || event.srcElement;
},
removeHandler: function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on" + type,handler);
}else{
element["on" + type] = null;
}
}
};
//
var DragDorp = function(){
var dragging = null;
var diffX = 0;
var diffY = 0;
function handleEvent(event){
//获取事件和目标
event = eventUtil.getEvent(event);
var target = eventUtil.getTarget(event);
//确定事件类型
switch(event.type){
case "mousedown":
if(target.className.indexOf('draggable') > -1){
dragging = target;
diffX = event.clientX - target.offsetLeft;
diffY = event.clientY - target.offsetTop;
}
break;
case "mousemove":
if(dragging != null){
event = eventUtil.getEvent(event);
dragging.style.left = (event.clientX - diffX) + "px";
dragging.style.top = (event.clientY - diffY) + "px";
}
break;
case "mouseup":
dragging = null;
break;
}
};
return {
enable: function(){
eventUtil.addHandler(document,"mousedown",handleEvent);
eventUtil.addHandler(document,"mousemove",handleEvent);
eventUtil.addHandler(document,"mouseup",handleEvent);
},
disable: function(){
eventUtil.removeHandler(document,"mousedown",handleEvent);
eventUtil.removeHandler(document,"mousemove",handleEvent);
eventUtil.removeHandler(document,"mouseup",handleEvent);
}
}
}();
DragDorp.enable();
</script>
求解代码倒数第三行的()是怎么回事,然后倒数第二行的用法是怎么回事。 javascript
[解决办法]
var eventUtil={
}
声明了个函数。
var eventUtil={
}();
马上执行它
[解决办法]
就一个立刻执行然后丢弃的函数,变量只是保存结果。象下面的例子。
var a= function () {
return 100;
}();
alert(a);
},
disable: function(){
eventUtil.removeHandler(document,"mousedown",handleEvent);
eventUtil.removeHandler(document,"mousemove",handleEvent);
eventUtil.removeHandler(document,"mouseup",handleEvent);
}
};
所以你倒数第二行应该是
DragDorp.enable();
也就是调用enable方法啦