DragAndDrop

xul文件:

xml 代码
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>  
  3. <window title="Widget Dragger" id="test-window" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">  
  4.  <script src="chrome://global/content/nsDragAndDrop.js"/>  
  5.   <script src="chrome://global/content/nsTransferable.js"/>    
  6.     
  7.   <script src="script/DragAndDrop.js"></script>  
  8.   <stack id="board" style="width:300px; height: 300px; max-width: 300px; max-height: 300px"    
  9.             ondragexit=" alert(2)"  
  10.             ondragover="nsDragAndDrop.dragOver(event,boardObserver)" ondragdrop="nsDragAndDrop.drop(event,boardObserver)">    
  11.   </stack>    
  12.   <vbox>    
  13.   <button label="Button" elem="button" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>    
  14.   <button label="Check Box" elem="checkbox" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>    
  15.   <button label="Text Box" elem="textbox" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>    
  16.       
  17.   </vbox>    
  18.   </window>   

ondragexit是拖放后的事件,ondragenter是刚拖进去时触发的事件,

js文件:var listObserver = {
   onDragStart: function (evt,transferData,action){
     var txt=evt.target.getAttribute("elem");
     transferData.data=new TransferData();
     transferData.data.addDataForFlavour("text/unicode",txt); }
   // transferData.data.addDataForFlavour("text/html",txt); }
    };
     var boardObserver = {
     getSupportedFlavours : function () {
      var flavours = new FlavourSet();
       flavours.appendFlavour("text/unicode"); return flavours;
       },
     onDragOver: function (evt,flavour,session){},
     onDrop: function (evt,dropdata,session){
       if (dropdata.data!=""){
         var elem=document.createElement(dropdata.data);
         evt.target.appendChild(elem);
         elem.setAttribute("left",""+evt.pageX);
         elem.setAttribute("top",""+evt.pageY);
         elem.setAttribute("label",dropdata.data);            
         }
       }
       };

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值