script.aculo.usでドラッグ&ドロップ
サンプル:4択クイズ
「回答欄」と書いてある、薄い青のスペースに答えをドラッグ&ドロップ!
本能寺の変で死んだのは?
織田信長
明智光秀
豊臣秀吉
徳川家康
回答欄:
ソース:
<p>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
<div id="question" style="font-size:large;">本能寺の変で死んだのは?</div>
<div id="popupper" style="border:solid black 1px;width:50%;padding:10px;background-color:#11CFFF">
<div class="post_item" id="ans1" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">織田信長</div>
<div class="post_item" id="ans2" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">明智光秀</div>
<div class="post_item" id="ans3" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">豊臣秀吉</div>
<div class="post_item" id="ans4" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">徳川家康</div>
</div>
<div id="answer" style="border:solid black 1px;width:50%;padding:10px;background-color:#AACFFF;margin-top:5px;">
回答欄:
<input type="text" id="name" style="width:90%;"/>
</div>
<div id="result"></div>
<script>
Droppables.add( "answer",{
accept : "post_item",
onDrop : function(dragElement, dropElement, event){
$("name").value = dragElement.innerHTML;
if ($("name").value == "織田信長") {
$("result").innerHTML = "正解!";
} else {
$("result").innerHTML = "間違い!";
}
}
});
new Draggable("ans1", {revert:true});
new Draggable("ans2", {revert:true});
new Draggable("ans3", {revert:true});
new Draggable("ans4", {revert:true});
</script>
</p>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
<div id="question" style="font-size:large;">本能寺の変で死んだのは?</div>
<div id="popupper" style="border:solid black 1px;width:50%;padding:10px;background-color:#11CFFF">
<div class="post_item" id="ans1" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">織田信長</div>
<div class="post_item" id="ans2" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">明智光秀</div>
<div class="post_item" id="ans3" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">豊臣秀吉</div>
<div class="post_item" id="ans4" style="border:solid black 1px;width:90%;background-color:#FFFFFF;margin:5px;">徳川家康</div>
</div>
<div id="answer" style="border:solid black 1px;width:50%;padding:10px;background-color:#AACFFF;margin-top:5px;">
回答欄:
<input type="text" id="name" style="width:90%;"/>
</div>
<div id="result"></div>
<script>
Droppables.add( "answer",{
accept : "post_item",
onDrop : function(dragElement, dropElement, event){
$("name").value = dragElement.innerHTML;
if ($("name").value == "織田信長") {
$("result").innerHTML = "正解!";
} else {
$("result").innerHTML = "間違い!";
}
}
});
new Draggable("ans1", {revert:true});
new Draggable("ans2", {revert:true});
new Draggable("ans3", {revert:true});
new Draggable("ans4", {revert:true});
</script>
</p>
と言うわけで、ドラッグアンドドロップが実装できていることがわかる。
ちなみに、今回のソースは記事中に突っ込んだので<script>タグを変な所に入れたけど、実際はonload関数にでも入れればいいと思う。
カテゴリ:JavaScript





The trouble was that they were going up against a regular army that could exercise overwhelming force. ,
コメント by Red40 — 2009年10月23日 金曜日 @ 2:24:33