Dojo的Drag and Drop

作者在 2008-05-28 10:35:22 发布以下内容
    不得不说Dojo的DnD做得很出色,非常简便!能够用较少的代码就做出一个Dnd应用。先给出一个简单的例子:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>DnD Test</title>

<style type="text/css">

@import "dojo/dijit/themes/soria/soria.css";

@import "dojo/dojo/resources/dojo.css"

</style>

<script type="text/javascript" src="dojo/dojo/dojo.js" djConfig="parseOnLoad:true">

</script>

<script type="text/javascript">

dojo.require("dojo.parser");

dojo.require("dijit.form.Button");

dojo.require("dojo.dnd.Source");

</script>

</head>

<body class="soria">

<h1>My own DnD Test</h1><br/>

<div dojoType="dojo.dnd.Source" style="border:1px dotted red; ; height:200px">

<b>Drag the following elements to the Target area:</b>

<div class="dojoDndItem" dndType="my1">

<input type="button" dojoType="dijit.form.Button" value="Drag">

</div>

<div class="dojoDndItem" dndType="my2">

<input type="text">

</div>

<div class="dojoDndItem" dndType="my3">

<input type="button" value="Lost">

</div>

</div>

<div dojoType="dojo.dnd.Target" style="border:2px dotted skyblue; ; height:200px"

accept="my1, my2">

<b>Target area:</b>

</div>

</body>

</html>

    首先要dojo.require("dojo.dnd.Source")。能够拖动的元素可以称作Source,而能够接受这些元素的地方就叫做Target。因此,我们只要把需要拖动的元素放在Source里面,拖到Target里面就可以了。所以,可以通过div来建立Source和Target区域。当然,用style来区分一下。然后,要被拖动的元素放在class="dojoDndItem"中,自己设置一个dndType。然后我们在Target区域中设置一个accept属性,里面放你要接受的元素的dndType。这里,我只设置接受了my1, my2。所以,只有dndType是my1和my2的元素能够拖动并释放到Target区域,而my3元素只能拖动,不能释放到Target区域。
    当然,这个例子只是简单的演示了一下Dnd,还没有加入任何事件代码。有兴趣的可以自己继续研究下去。

DOJO | 阅读 6784 次
文章评论,共0条
游客请输入验证码