| MVC Classic ウィジェット > Wijtree > カスタムドラッグ&ドロップオプションの使用 |
wijtree ウィジェットでは、ドラッグ&ドロッププロパティである allowDrag と allowDrop のカスタム動作の設定をサポートします。 このトピックでは、2つの wijtree 要素とゴミ箱要素を作成する手順について説明します。 wijtree 要素間およびゴミ箱要素へノードをドラッグすることができます。 Web サイト(http://demo.componentone.com/ASPNET/MVCExplorer/tree/CustomDragDrop)にアクセスし、MVC コントロールエクスプローラの Custom Drag and Drop > Tree サンプルのライブデモをご覧ください。
<body> タグ内に追加します。
| ソースビュー |
コードのコピー
|
|---|---|
<div>
<ul id="tree1">
<li><a><span>フォルダ 1</span></a>
<ul>
<li><a><span>フォルダ 1.1</span></a></li>
<li><a><span>フォルダ 1.2</span></a></li>
<li><a><span>フォルダ 1.3</span></a></li>
<li><a><span>フォルダ 1.4</span></a></li>
<li><a><span>フォルダ 1.5</span></a></li>
</ul>
</li>
<li><a href="#"><span>フォルダ 2</span></a>
<ul>
<li><a><span>フォルダ 2.1</span></a></li>
<li><a><span>フォルダ 2.2</span></a></li>
<li><a><span>フォルダ 2.3</span></a></li>
<li><a><span>フォルダ 2.4</span></a></li>
<li><a><span>フォルダ 2.5</span></a></li>
</ul>
</li>
<li><a href="#"><span>フォルダ 3</span></a>
<ul>
<li><a><span>フォルダ 3.1</span></a></li>
<li><a><span>フォルダ 3.2</span></a></li>
<li><a><span>フォルダ 3.3</span></a></li>
</ul>
</li>
</ul>
</div>
<div id="trash" class="ui-widget-content">
<h4 class="ui-widget-header">
<span class="ui-icon ui-icon-trash">Trash</span> ごみ箱</h4>
<ul>
</ul>
</div>
<div style="clear: both">
</div>
<p>
このツリーのクローンノードします:</p>
<div>
<ul id="tree2">
<li><a><span>フォルダ 4</span></a>
<ul>
<li><a><span>フォルダ 4.1</span></a></li>
<li><a><span>フォルダ 4.2</span></a></li>
<li><a><span>フォルダ 4.3</span></a></li>
<li><a><span>フォルダ 4.4</span></a></li>
<li><a><span>フォルダ 4.5</span></a></li>
</ul>
</li>
<li><a href="#"><span>フォルダ 5</span></a>
<ul>
<li><a><span>フォルダ 5.1</span></a></li>
<li><a><span>フォルダ 5.2</span></a></li>
<li><a><span>フォルダ 5.3</span></a></li>
<li><a><span>フォルダ 5.4</span></a></li>
<li><a><span>フォルダ 5.5</span></a></li>
</ul>
</li>
</ul>
</div>
|
|
| ソースビュー |
コードのコピー
|
|---|---|
<style>
#trash
{
float: right;
min-height: 12em;
padding: 1%;
width: 32%;
}
#trash ul
{
list-style: none;
}
#trash ul li
{
margin-bottom: 10px;
}
div.wijmo-wijtree
{
float: left;
}
.dropVisual
{
height: 1px;
font-size: 0px; /*IE 6 の問題を修正*/
background-color: Red;
}
</style>
|
|
| ソースビュー |
コードのコピー
|
|---|---|
<script id="scriptInit" type="text/javascript">
$(document).ready(function () {
var span = "<span class=\"ui-widget-content helperInner\">";
$("#tree1").wijtree({
allowDrop: false,
allowDrag: true,
dropVisual: function () {
return $("<div>").addClass("dropVisual");
},
appendTo: 'body',
draggable: {
revert: "invalid",
start: function (event, ui) {
ui.helper.html(ui.helper.html() + span);
},
drag: function (event, ui) {
var inner = ui.helper.children(".helperInner");
if (inner.length) {
inner.html("x:" + event.pageX + " y:" + event.pageX);
}
},
stop: function (event, ui) {
$(this).hide()
$(this).show("highlight", 500);
}
}
});
var getInitMarkup = function (dragNode) {
var node = dragNode.clone();
node.find("a").unwrap().unwrap();
node.find("li>span,>span").remove();
return node;
};
$("#tree2").wijtree({
allowDrop: true,
allowDrag: false,
droppable: {
drop: function (event, ui) {
var dragNode = ui.draggable,
p = ui.newParent,
po = ui.newIndex, node;
node = getInitMarkup(dragNode);
if (p.is(":wijmo-wijtree")) {
p.wijtree("add", node, po);
}
else {
p.wijtreenode("add", node, po);
}
}
}
});
$("#trash").droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
scope: "tree",
// 受け入れる:"li",
drop: function (event, ui) {
var node = ui.draggable;
delTreeNode(node, this);
}
});
var delTreeNode = function (node, trash) {
var parent = node.parent()
.closest(":wijmo-wijtreenode,:wijmo-wijtree");
if (parent.is(":wijmo-wijtreenode")) {
parent.wijtreenode("remove", node);
}
else {
parent.wijtree("remove", node);
}
node.appendTo($(trash).children("ul:eq(0)"));
}
});
</script>
|
|