2010-07-02 5 views
1

PHP를 통해 데이터베이스의 항목을 반복하면서 클릭하면 각 항목을 편집하기 위해 외부 양식을 호출합니다. Prototype 프레임 워크를 기반으로 자바 스크립트를 작성했습니다. 그러나 클릭 한 항목의 상위 요소를 선택하려고하면 처음 성공적으로 편집 한 후 후속 편집이 실패하고 첫 번째 편집 된 요소의 내용이 마지막으로 클릭 한 항목으로 바뀝니다. otherwords에서Prototype/JS를 사용하여 동적으로 생성 된 특정 요소를 어떻게 선택합니까?

,이 같은 목록이 있습니다

"A"를 클릭하고 변경 한 후 B C

가 "1"내 외부 양식, 이후에 선택하는 "B"를하고 다음에 "2"로 변경하는 결과를 다음 콘티와

2

C

첫 번째 항목 (a 또는 1.)의 내용을 대체하는 두 번째 항목 (B 또는 2)의 nts

내 PHP 외부 양식에는 문제가 없습니다. 페이지를 새로 고침하면 값을 제대로.) 내 문제는 javascript 내 게시물의 결과를 표시하려면 올바른 부모 요소를 선택하는 것입니다.

(나는 통해 클릭하고 목록의 맨 아래에서 시작하여 내 요소를 변경 흥미로운 보조 노트로서, 요소 중 어느 것도 덮어되지 않고 페이지 기능이 정상적으로.)

function inlineEditor() { 
$$('div.form span.status').each(function(elm){ 
elm.observe('click',function(evt){ 
    Event.stop(evt); 
    var block = this.up('div.form'); 
    var item = block.id; 
    new Ajax.Updater(block,'status_types_edit.php',{ 
    parameters:{id:item}, 
    evalScripts:true 
    }); 
}); 
}); 
} 

<body onload="inlineEditor();"> 

<?php do { ?> 
    <div class="form" id="<?php echo $row_GetStatus_Types['id']; ?>"> 
    <span class="status"><?php echo $row_GetStatus_Types['status_name']; ?></span> 
    </div> 
<?php } while ($row_GetStatus_Types = mysql_fetch_assoc($GetStatus_Types)); ?> 

답변

0

무엇 "this"가 런타임에 평가됩니까?

var block = $(Event.element(evt)).up('div.form'); 
: 대신 이벤트에서 요소를 점점

var block = this.up('div.form'); 

시도의

관련 문제