这些地方不懂

这些地方不懂

$("#target")[0].ondragstart = function(e) {
   console.log(e.dataTransfer);
   e.dataTransfer.setData("Text", e.target.id);
   e.dataTransfer.setDragImage($("#image").clone().removeClass("hide")[0], 0, 0);
};

这里的e.target.id 为什吗不能换成this,

("#image").clone().removeClass("hide")[0]这里的【0】为什吗要加在最后。。。("#image").clone()【0】.removeClass("hide")为什莫不可以

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

1、简单点说就是e.target.id获取到的仅仅是这个id

http://img1.sycdn.imooc.com//climg/5a45fe92000129c108830222.jpg

而this指的是整个div元素。

2、至于你说的$("#image").clone().removeClass('hide')[0]问题,课程中老师讲的是说$("#image").clone().removeClass('hide')[0]整体来说只一个dom对象,也就是说按照你的方法调换了[0]的顺序它就不是一个dom对象了吧

提问者 慕粉1902362591 2017-12-29 15:43:57

还是不懂

1,冒泡只有在子级和父级具有相同的事件时才会触发,这里的两个元素不是父级关系,并且没有相同事件

2,jquery获取的是一个对象没错,但是("#image").clone()【0】.removeClass("hide")我这里也是获取到他克隆的元素再删除class。我这里问什么不行

正在想名字呢 2017-12-29 14:31:37

1、this会冒泡,e.target不冒泡就是指向事件触发的dom。

2、$("#image").clone().removeClass('hide')这里是Jquery对象,而要获取dom对象则需要使用[0]来获取(这句我是看老师这么说的)

  • 提问者 慕粉1902362591 #1
    还是不懂 1,冒泡只有在子级和父级具有相同的事件时才会触发,这里的两个元素不是父级关系,并且没有相同事件 2,jquery获取的是一个对象没错,但是("#image").clone()【0】.removeClass("hide")我这里也是获取到他克隆的元素再删除class。我这里问什么不行
    2017-12-29 15:44:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5&CSS3进阶与常用框架 2018
  • 参与学习       315    人
  • 提交作业       136    份
  • 解答问题       626    个

如果你有H5、CSS3、JS基础,热爱前端并希望在前端应用方面不断进步,那就来吧,本路径为你带来的课程有HTML5进阶、CSS3进阶、JS面向对象、jQ基础、Less等,助你进一步提升前端开发技能

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师