【问题标题】:Getting objects to stay in a scriptaculous droppable让对象留在脚本中
【发布时间】:2009-08-10 15:07:53
【问题描述】:

当我查看人们添加到 Scriptaculous 的内容时,我发现了一些有趣的代码,我正在尝试修改它以达到我的目的。我几乎所有的工作都正常了,除了当我粘贴放置处理程序代码时,我的页面停止加载。

以下是相关的片段:

对于可拖动对象:

for (i=0; i<=50; i++){
     Squad = 'Squad' + i
     if($(Squad)){
          new Draggable(Squad,{revert:true});

对于 Droppable:

Droppables.add('ToEast', {
     accept: ["Nurse","Squad","Doctor"], 
     onDrop:function(e){DropHandler(e,'ToEast')}
});

drophandler:

 function DropHandler(element,el){
     var newnode  = document.createElement('img'); 
     var classname = element.className;
     newnode.src="images/"+IdCatcher+".jpg";
     newnode.id = IdCatcher;  
     $(el).appendChild(newnode);
     newnode.setAttribute("class", 'classname');
     newnode.setAttribute("className", 'classname);
     new Draggable(newnode.id,{revert:true});
     element.parentNode.removeChild(element);
 }

我用“alert()”替换了代码,它开始工作正常,所以最后一个块中的某些东西不能正常工作。我不得不修改他们的很多代码以使其适用于当前版本的 scriptaculous,但我并不那么熟悉,所以它可能与旧代码有关?或者它可能有什么问题,我还不够好。

【问题讨论】:

    标签: javascript scriptaculous draggable droppable


    【解决方案1】:

    您在此行末尾缺少一个结束引号:

    newnode.setAttribute("className", 'classname);
    

    如果还是有问题,建议你尝试使用Firebug调试脚本,看看是哪一行出错了。

    【讨论】:

    • 好吧,我觉得自己很笨。我不能使用萤火虫,因为代码完全无法运行......这真的应该让我觉得它就像缺少引号或括号。抱歉,这里是非常新的编码器。
    • 别觉得自己很笨...我只是因为 StackOverflow 的语法高亮才发现它!我们都在这里以 wtf/min 的速度工作 :)(尽管请随意给我点赞)
    • 有没有机会看到为什么这段代码在 Firefox 中运行良好但在 IE 中运行良好?
    • 你有这个在线链接吗?没有完整的代码和实现就很难判断。
    • 它也会在 IE7/8 中引发“需要对象”错误,在 effects.js 的第 361 行 - 这是对 IE haslayout 问题的检查。看起来像是 IE 的脚本错误。尝试注释掉第 361 和 362 行,并确保元素具有布局 haslayout.net/haslayout,因此您不需要该检查。
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2010-11-01
    • 2023-04-02
    • 2015-07-24
    • 2016-11-16
    相关资源
    最近更新 更多