为了账号安全,请及时绑定邮箱和手机立即绑定

DOM事件探秘-QQ拖曳效果

function getByName(clsName,parent) {

  var oParent = parent?document.getElementById(parent):document,

      eles = [],

      elements = oParent.getElementsByTagName('*');


  for (var i=0;i<elements.length;i++) {

      if (elements[i].className ==  clsName) {

        eles.push(elements[i]);

      }

      return eles;

  }

}


window.onload = drag;


function drag() {

  var oTitle = getByName('login_logo_webqq','loginPanel')[0];

  oTitle.onmousedown = fnDown;

}


function fnDown() {

  var oDrag = document.getElementById('loginPanel')

  document.onmousemove = function(event){

    event = event || window.event;

    oDrag.style.left = event.clientX+'px';

    oDrag.style.top = event.clientY+'px';

  }

}

DOM时间探秘里边照着视频打的,对了一遍没找到问题……控制台报错Cannot set property 'onmousedown' of undefined,不知道啥原因……望解答,谢谢!

正在回答

1 回答

return eles;

应该在 for 循环外

  for (var i=0;i<elements.length;i++) {
      if (elements[i].className ==  clsName) {
        eles.push(elements[i]);
      }
  }
  return eles;


1 回复 有任何疑惑可以回复我~
#1

自律让人自由4008941 提问者

谢谢~~ for (var i=0;i<elements.length;i++) { if (elements[i].className == clsName) { eles.push(elements[i]); return eles; } } 刚开始是放在外面的,不知道为什么不行。后来改成这样就可以了。不过现在整个脚本写完,再把return放到for外面,又没问题了。可能是过程中有我没注意到的问题。 再问一个问题,放在for里面和外面的区别是不是,每次都返回与最后整体返回?
2016-11-20 回复 有任何疑惑可以回复我~
#2

宋匿 回复 自律让人自由4008941 提问者

放在里面只返回一次,eles.push() 只执行一次就不继续循环了。
2016-11-20 回复 有任何疑惑可以回复我~
#3

自律让人自由4008941 提问者 回复 宋匿

return的意思是返回值,后面的代码不再执行了吗?
2016-11-21 回复 有任何疑惑可以回复我~
#4

宋匿 回复 自律让人自由4008941 提问者

可以这么理解
2016-11-21 回复 有任何疑惑可以回复我~
#5

慕码人1183263 回复 自律让人自由4008941 提问者

简单的讲,return如果是在循环里面的话,执行,后返回值就会跳出循环,如果只是在函数里,执行,返回值就会跳出函数。
2016-12-30 回复 有任何疑惑可以回复我~
#6

慕码人1183263 回复 慕码人1183263

例如 function cs(n){ if(n==1){retrun 1;} if(n==2){return;} else{} } 说明:当参数为1时函数返回值为1并且跳出函数, 当参数为2时函数返回值为空并且跳出函数, 当函数为其他值时继续执行函数下面的语句,直到遇到下个return或则全部执行完语句在跳出函数
2016-12-30 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消
DOM事件探秘
  • 参与学习       99530    人
  • 解答问题       1305    个

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

进入课程

DOM事件探秘-QQ拖曳效果

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号