양식의 테이블 행을 '위로'및 '아래로'이동할 수있는 기능을 설정하려고합니다. 테이블 행의 수는 동적입니다. 사용자는 버튼을 눌러 행을 추가 할 수 있습니다. 각 테이블 행에는 여러 필드가 있습니다. 다른 클래스 이름을 가진 머리글 행과 바닥 글 행이 있으므로 hasClassName을 확인하십시오.프로토 타입 1.5.1에서 형제 요소를 위/아래로 어떻게 이동합니까?
필자는이 기능을 처음 프로토 타입 1.6과 함께 사용하기 전에 성공적으로 작성하여 버전 1.5.1에서 작동하게했습니다. 테스팅에 시간이 필요할 때 우리는 Prototype의 최신 버전으로 업그레이드 할 것이지만, 우리 프로젝트의 현재 버전에서 작동하려면이 버전이 필요합니다.
주요 문제는 1.5에서는 요소를 삽입 내용으로 삽입 할 수 없다는 것입니다. 즉, 삽입하려는 요소의 HTML이 필요합니다. 이것은 HTML 요소 (변수 "insertHTML")에 액세스 할 때 원본 HTML이며 사용자가 관련 양식 요소에 입력 한 정보를 포함하지 않는다는 문제를 야기합니다.
도움을 주시면 감사하겠습니다.
moveDataDef: function(num, dir) {
var targRow = $('dataDefItem'+num);
var content = targRow.innerHTML;
var siblings;
var insertHTML = targRow.inspect() + targRow.innerHTML + '</tr>';
if(dir == 'up')
siblings = targRow.previousSiblings();
else
siblings = targRow.nextSiblings();
if (siblings[0].hasClassName('dataDefItem')) {
targRow.remove();
if(dir == 'up')
new Insertion.Before(siblings[siblings.length - 1].id, targRow);
else
new Insertion.After(siblings[0].id, targRow);
}
}
이것은 나를 위해 일했지만 fyi ... if/else 문에서 누락 된 일부 대괄호가 수정해야했습니다. 이것은 Prototype의 API를 사용하여 작성한 Prototype 1.6 함수와 매우 비슷합니다. 네이티브 DOM 코드가 브라우저에서 작동합니까? –
고마워. IE8 (모든 모드), Firefox 3 및 Safari 4 베타에서 작동합니다. 호환성 목록은 Peter-Paul Koch (http://www.quirksmode.org/dom/w3c_core.html)를 참조하십시오. – Nordin