老师,怎么都实现不了?

老师,怎么都实现不了?

<!DOCTYPE html>

<html>

    <head>

<meta charset="UTF-8">

<title>使用拖拽更改支付宝的默认付款方式</title>

<style type="text/css">

ul{

    width:300px;

}

li{

    list-style:none;

    padding:5px;

    border:1px dashed grey;

}

.hide{

    display:none;

}

</style>

</head>

<body>

<h3>使用拖拽更改支付宝的默认付款方式</h3>

<ul id="card">

<li>招商信用卡</li>

<li>交通信用卡</li>

<li>中信储蓄卡</li>

<li>建行储蓄卡</li>

<li>蚂蚁花呗</li>

<li>余额宝</li>

<li>余额</li>

</ul>

<img src="http://img1.sycdn.imooc.com/climg//59705a7b0001736902000080.png" class="hide">

<script>

(function($){

    $('li').each(function(index,ele){

        var dragSrc;

        $(ele).on("dragstart",function(e){

            dragSrc=this;

            e.originalEvent.dataTransfer.setData("text/html",this.innerHTML);

            e.originalEvent.dataTransfer.setDragImage($('.hide').clone().removeClass('hide')[0],0,0);

        }).on("dragover",function(e){

            e.preventDefault();

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

            if(dragSrc!=this){

                dragSrc.innerHTML=this.innerHTML;

                this.innerHTML= e.originalEvent.dataTransfer.getData("text/html");

            }

        })

    })

})(jQuery)

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

3回答
weixinapp_慕粉007 2019-02-28 10:10:18

老兄,这里的setData和getData根本就不需要用,直接用insertBefore和insertAfter。就可以啦

提问者 小章鱼丸 2018-12-28 20:27:29

<!DOCTYPE html>

<html>

    <head>

<meta charset="UTF-8">

<title>使用拖拽更改支付宝的默认付款方式</title>

<style type="text/css">

ul{

    width:300px;

}

li{

    list-style:none;

    padding:5px;

    border:1px dashed grey;

}

.hide{

    display:none;

}

</style>

</head>

<body>

<h3>使用拖拽更改支付宝的默认付款方式</h3>

<ul id="card">

<li>招商信用卡</li>

<li>交通信用卡</li>

<li>中信储蓄卡</li>

<li>建行储蓄卡</li>

<li>蚂蚁花呗</li>

<li>余额宝</li>

<li>余额</li>

</ul>

<img src="http://img1.sycdn.imooc.com/climg//59705a7b0001736902000080.png" class="hide">

<script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

<script>

(function($){

    var dragSrc;

    $('li').each(function(index,ele){

        $(ele).attr('draggable','true');

        $(ele).on("dragstart",function(e){

            dragSrc=this;

            e.originalEvent.dataTransfer.setData("text/html",this.innerHTML);

            e.originalEvent.dataTransfer.setDragImage($('.hide').clone().removeClass('hide')[0],0,0);

        }).on("dragover",function(e){

            e.preventDefault();

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

            if(dragSrc!=this){

                dragSrc.innerHTML=this.innerHTML;

                this.innerHTML= e.originalEvent.dataTransfer.getData("text/html");

            }

        })

    })

})(jQuery)

</script>

</body>

</html>


  • 这段代码测试之后是成功的,没有问题。现在实现的效果只是内容的交换,但是给出的效果中还有顺序的变化哦,可以使用插入insertBefore()等方法来实现下。
    2018-12-29 09:44:34
好帮手慕星星 2018-12-28 16:35:19

同学你好,代码中的问题:

http://img1.sycdn.imooc.com//climg/5c25e0140001cc9115050352.jpghttp://img1.sycdn.imooc.com//climg/5c25e02c0001ba4f12030220.jpg

可以按照上面的修改代码测试下。

祝学习愉快!

  • 提问者 小章鱼丸 #1
    老师,怎么还是不行? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>使用拖拽更改支付宝的默认付款方式</title> <style type="text/css"> ul{ width:300px; } li{ list-style:none; padding:5px; border:1px dashed grey; } .hide{ display:none; } </style> </head> <body> <h3>使用拖拽更改支付宝的默认付款方式</h3> <ul id="card"> <li>招商信用卡</li> <li>交通信用卡</li> <li>中信储蓄卡</li> <li>建行储蓄卡</li> <li>蚂蚁花呗</li> <li>余额宝</li> <li>余额</li> </ul> <img src="http://img1.sycdn.imooc.com/climg//59705a7b0001736902000080.png" class="hide"> <script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script> (function($){ var dragSrc; $('li').each(function(index,ele){ $(ele).attr('draggable','true'); $(ele).on("dragstart",function(e){ dragSrc=this; e.originalEvent.dataTransfer.setData("text/html",this.innerHTML); e.originalEvent.dataTransfer.setDragImage($('.hide').clone().removeClass('hide')[0],0,0); }).on("dragover",function(e){ e.preventDefault(); }).on("drop",function(e){ if(dragSrc!=this){ dragSrc.innerHTML=this.innerHTML; this.innerHTML= e.originalEvent.dataTransfer.getData("text/html"); } }) }) })(jQuery) </script> </body> </html>
    2018-12-28 20:27:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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