与Dojo extending dojo.dnd.Source, move not happening. Ideas?的问题相关,我现在差不多完成了。
我有一个dnd.Source派生类 - 我们现在可以认为它是一个dnd.Source,其中包含一个具有特定类的节点。
function declare_mockupSmartDndUl(){
dojo.require("dojo.dnd.Source");
dojo.provide("mockup.SmartDndUl");
dojo.declare("mockup.SmartDndUl", dojo.dnd.Source, {
markupFactory: function(params, node){
//params._skipStartup = true;
return new mockup.SmartDndUl(node, params);
},
onDropExternal: function(source, nodes, copy){
console.debug('onDropExternal called...');
// dojo.destroy(this.getAllNodes().query(".dndInstructions"));
this.inherited(arguments);
var x = source.getAllNodes().length;
if( x == 0 ){
newnode = document.createElement('li');
newnode.innerHTML = "Hello!";
dojo.addClass(newnode,"dndInstructions");
source.node.appendChild(newnode);
}
return true;
// return dojo.dnd.Source.prototype.onDropExternal.call(this, source, nodes, copy);
}
});
}
你可以从dojo.destroy看到我所说的地方,因为它完全是n00b而被注释掉了。)
如果我这样做var y = this.getAllNodes()。query(“。dndInstructions”),y中的nodelist绝对包含节点。
现在我需要杀死它,核对它 - 把它从那里拿出来。在dnd.Source之外,从DOM中消失了......
任何想法如何安全地做到这一点?当我们做任何我们要做的事情来杀死这个东西时,它将成为列表中的唯一节点。
谢谢!