为什么我这样写,网页检查显示函数未定义呢

为什么我这样写,网页检查显示函数未定义呢

<!DOCTYPE HTML>

<html>


<head>

    <style type="text/css">

    #div1 {

        width: 198px;

        height: 150px;

        padding: 10px;

        border: 1px solid #aaaaaa;

        display: inline-block;

        margin: 100px

    }

    </style>

    

</head>


<body>

    <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">

        <p>请把小飞机拖放到这里</p>

    </div>

    <img id="drag1" src="http://img1.sycdn.imooc.com/climg//5b9603390001ffe202000100.png" draggable="true" ondragstart="drag(event)" />

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

    <script type="text/javascript">

        (function($){

        $("#drag1").on("drag",function(e){

        e.preventDefault();

        })

        $("#div1")

        .on("drop",function(e){

        e.preventDefault();

        $(this).append($("#drag1"));})

        .on("allowDrop",function(e){

        e.preventDefault();

        })

        })   

    </script>

</body>


</html>


正在回答

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

2回答

你好同学,如下理解:

1.在标签中绑定事件是调用了函数,不是定义函数,函数是在js中定义的哦。就像老师上个回复的第一个截图,先在js中定义一个函数,然后标签中绑定的事件里面调用这个函数。当事件触发,函数就会执行哦。

2.使用jQuery的方式不需要在标签中调用函数。同学要区分开只是绑定事件的方式不一样,一个是直接在标签上面绑定事件,事件执行的函数需要自己在js中定义。然后在事件后面调用。当事件触发,就会执行此函数(参考老师上次回复的第一个截图)

一个是在jQuery代码中直接获取元素监听一个事件,事件后面已经有一个匿名函数了。当事件触发,就会执行匿名函数里面的内容(匿名函数就是没有名字的函数)。

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

祝学习愉快 ,望采纳。

好帮手慕夭夭 2019-05-06 14:19:32

你好同学,因为在标签中为事件绑定的事件处理函数并没有在js中定义,所以会报错,例如如下:

在js中需要定义一个函数,然后在事件ondragstart中才能调用这个函数哦

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

不过同学的代码中在js中想使用on为元素绑定事件,而on中第一个参数应该是事件的事件名,例如click,drop,dragstart。并不是同学理解的任意起一个事件名称。另外,拖拽的效果应该是在拖动图片的过程中使用setData保存下他的数据,然后在图片拽到指定区域,先getData获取到数据,然后才能添加,建议同学在复习一下课程,按照课程中讲解的知识点练习。代码参考如下:

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

祝学习愉快 ,望采纳。

  • 提问者 慕用0863198 #1
    视频里有的是使用js原生的,有的是使用jquery封装,而使用jquery封装的,在视频里也并没有进行定义啊
    2019-05-06 22:40:48
  • 提问者 慕用0863198 #2
    是不是使用jquery就不用在标签内部定义函数了?
    2019-05-06 22:44:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

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

在线咨询

领取优惠

免费试听

领取大纲

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