javascript 简单实现页面上的拖放功能

<html>

<head>
<style type="text/css">
td{text-align:center}
th{text-decoration: underline}
.blanks{text-decoration:underline}
</style>
<title></title>
<script type="text/javascript">
var timer;
function setupDrag()
{
    if(event.srcElement.tagName != "TD")
    {
        event.returnValue = false;
    }
    else
    {
        var passedData = [event.srcElement.innerText, event.srcElement.className];
        event.dataTransfer.setData("Text",passedData.join(":"));
        event.dataTransfer.effectAllowed= "copy";
        timer = new Date();
    }
}

function timeIt()
{
    if(event.srcElement.tagName == "TD"&&timer)
    {
        if((new Date())-timer>6000)
        {
            alert("Sorry, time is up,Try again.")
            timer = 0;
        }
    }
}

function handleDrop()
{
    var elem = event.srcElement;
    var passedData = event.dataTransfer.getData("Text");
    var errMsg = "";
    if(passedData)
    {
        passedData =  passedData.split(":");
        if(elem.id=="blank1")
        {
            if(passedData[1] =="noun")
            {
                event.dataTransfer.dropEffect ="copy";
                event.srcElement.innerText = passedData[0];
            }
            else
            {
                errMsg = "You cannot put an adjective into the noun placeholder.";
            }
        }
        else if(elem.id=="blank2")
        {
            if(passedData[1] =="adjective")
            {
                event.dataTransfer.dropEffect = "copy";
                event.srcElement.innerText = passedData[0];
            }
            else
            {
                errMsg = "You cannot put an noun into the noun placeholder.";
            }
        }
        if(errMsg)
        {
            alert(errMsg);
        }
    }
}

function cancelDefault()
{
    if(event.srcElement.id.indexOf("blank")==0)
    {
        event.dataTransfer.dropEffect = "copy";
        event.returnValue = false;
    }
}
</script>

</head>

<body οndragstart="setupDrag()" οndblclick="timeIt()">
<center>
<table border="2" cellpadding="5">
   <tr>
      <th>Nouns</th>
      <th>Adjective</th>
   </tr>
   <tr>
      <td class="noun">truck</td>
      <td class="adjective">round</td>
   </tr>
   <tr>
      <td class="noun">doll</td>
      <td class="adjective">red</td>
   </tr>
   <tr>
      <td class="noun">ball</td>
      <td class="adjective">Pretty</td>
   </tr>
</table>
<p id="myP" οndragenter="cancelDefault()" οndragοver="cancelDefault()" οndrοp="handleDrop()">Pat said,"oh my, the<span id="blank1" class="blanks">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>is so <span id="blank2" class="blanks">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>!"</p>
<button οnclick="location.reload()">Reset</button>
</center>
</body>

</html>

转载于:https://www.cnblogs.com/Amanda2007/archive/2008/05/26/1207672.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值