WEB开发网
开发学院软件开发Java 使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分:... 阅读

使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分: Dojo 核心库深入介绍

 2010-09-26 00:00:00 来源:WEB开发网   
核心提示: 如 代码清单 5 所示,注意其中 insertNodes()方法和 creator方法的参数 hint的使用,使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分: Dojo 核心库深入介绍(10),当条目被拖动到目标上方并放下的时候,表示目标的 dojo.dnd.Target对象会首先

如 代码清单 5 所示,注意其中 insertNodes()方法和 creator方法的参数 hint的使用。当条目被拖动到目标上方并放下的时候,表示目标的 dojo.dnd.Target对象会首先通过 checkAcceptance(source, nodes)方法来检查是否允许拖动的条目放下。如果允许的话,目标上的 onDrop(source, nodes, copy)方法会被调用,其三个参数 source、nodes和 copy分别表示拖放源、被拖动的节点以及是否需要进行复制。默认提供的 onDrop()方法的实现会根据拖放源和目标是否相同来调用不同的方法:当源和目标不相同的时候,调用的是 onDropExternal(source, nodes, copy);相同的时候调用的则是 onDropInternal(nodes, copy)。拖动的节点在目标上被放下之后的默认行为取决于在创建目标 dojo.dnd.Target对象的时候,是否定义了 creator方法。如果定义了 creator方法,就通过此方法在拖放目标中创建出新的 DOM 节点;如果没有的话,就直接进行 DOM 节点的复制或移动。从 代码清单 5 中可以看到,拖放目标 target定义了 creator方法,因此当条目从 source拖放到其上之后,条目的显示方式发生了变化。

在有些拖放操作中,当条目在目标上放下的时候,并不需要进行 DOM 节点的复制或移动。拖放行为本身只是作为一种触发的动作。这个时候就需要自定义 onDrop()或是 onDropExternal()和 onDropInternal()方法的实现。代码清单 6 中给出了一个自定义拖动条目被放下时行为的示例。该示例的场景是用户拖动想要购买的图书到购物车中,购物车会自动更新图书的总价。

清单 6. 自定义拖动条目被放下时的行为

 var sum = 0; 
 var target = new dojo.dnd.Target("target", { 
  accept : ["book"], 
  onDropExternal : function(source, nodes, copy) { 
    for (var i = 0, n = nodes.length; i < n; i++) { 
      var node = nodes[i]; 
      var item = source.getItem(node.id); 
      sum += item.data.price; 
    } 
    dojo.byId("target").innerHTML = "总价合计为:" + sum + " 元"; 
  } 
 }); 

上一页  5 6 7 8 9 10 

Tags:使用 Dojo Ajax

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接