Получение объектов, чтобы остаться в подлинном сбрасывании - PullRequest
0 голосов
/ 10 августа 2009

Я нашел какой-то интересный код, когда смотрел на то, что люди добавили в Scriptaculous, и я пытаюсь изменить его для своих целей. У меня почти все работает, за исключением случаев, когда я вставляю код обработчика отбрасывания, моя страница перестает загружаться.

Вот соответствующие фрагменты:

Для Draggables:

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

Для Droppables:

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

Обработчик дропа:

 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, но я не настолько знаком, так что это может иметь отношение к старому коду? Или может быть что-то не так с этим, что я недостаточно хорош, чтобы это увидеть.

1 Ответ

1 голос
/ 10 августа 2009

Вам не хватает закрывающей кавычки в конце этой строки:

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

Если проблема не устранена, я советую попробовать отладить скрипт, используя Firebug , чтобы увидеть, какая строка вызывает ошибку.

...