2011-10-20 3 views
4

내가 자바 스크립트에 새로 온 사람과 +의 JQuery와 + 모두 함께 커피 스크립트 나 같은 초보자를위한 쉬운 일이 아니다 자바 스크립트 믹스를 시작 ...각 루프, JQuery와

나는 아주 간단한 정렬 목록을 만들었습니다 (서버 쪽 코드는 괜찮습니다.) 제 목록을 즉시 번호를 매기려고합니다. 내가 쓴

커피 스크립트 코드는 다음과 같습니다

jQuery -> 
    $('.simple_grid tbody').sortable 
    axis: 'y' 
    containment: 'parent' 
    cursor: 'move' 
    tolerance: 'pointer' 
    update: (event,ui)-> 
     $.post($(this).attr('dataupdateurl') + '/' + ui.item.attr('id') + '/reorder/' + ui.item.index()) 
     $('tr > td > a > span.number').each (i, element) => 
     $(element).html i 

이 내가 span.number 요소 내부 때 업데이트 콜백 트리거 무엇 번호를 다시하기 위해 노력하고있어 이런 종류의

<table class= "simple-grid"> 
    <tbody dataupdateurl = "xxx"> 
     <tr> 
     <td> 
      <a href="some_link"><span class="number">1</span>text 1</a> 
     </td> 
      <td> 
      <a href="some_link"><span class="number">2</span>text 2</a> 
     </td> 
     <td> 
      <a href="some_link"><span class="number">3</span>text 3</a> 
     </td> 
     </tr> 
    </tbody> 
</table> 

의 테이블을 생성 하지만 다음과 같은 오류 메시지가 나타납니다.

요소가 정의되지 않았습니다.

도움이 될 것입니다. 감사!

업데이트 :

$('span.number').each (i, element) => 
     $(element).html i 

답변

4

나는 커피 스크립트를 모르지만 일반적으로 jQuery를 선택기를 사용하면 전체 경로를 필요로하지 않습니다 문제 때문에 내가 마지막 기능에서 들여 쓰기를 놓쳤다는 사실이었다. 예 : $('tr > td > a > span.number')$('.number')으로 다시 쓸 수 있으며 .each()는 일반적으로 .each(function(index, element) { YOUR CODE });으로 사용됩니다. 밖으로 보이는 마지막 것은 일반적으로 .html('value')으로 행해지는 html을 설정하는 것입니다. 그래서 귀하의 경우 $(element).html(i);. 희망이 도움이 될까요?

+0

안녕하세요, 선택기 전체 경로가 맞습니다. 나는 그것을 바꿨다. 감사. 나머지에 관해서는 자바 스크립트에서 말하는 것과 같은 형식의 coffeescript 구문이라고 생각합니다. 그러나 분명히 어딘가에 뭔가 잘못된 것이 있습니다 ... – ndemoreau

+1

코드를 읽으면 논리적으로 게시물이 발생하고 그 직후에 각각을 수행합니다. 이벤트 시퀀스로 인해 게시물이 완료되고 DOM이 완전히 작성되지 않은 것일 수 있습니다. . fachntionality를 $ (document) .ready (function() {})로 옮겨보십시오. 또는 커피 스크립트와 동등합니다. 따라서 게시가 완료되고 DOM이 만들어지면 스크립트가 항상 실행된다는 것을 알 수 있습니다. 렌더링 전에 여전히 발생합니까? – Kosmosniks

+0

어째서? 코드는 괜찮 았어. 들여 쓰기의 문제 일뿐입니다 ... 당신의 제안에 따라 코드를 옮길 때 이것을 발견했습니다. 많은 감사합니다! – ndemoreau