2012-05-28 3 views
0

jQuery 코드가 로딩 클래스를 추가하고 나중에 제거하지 않는 이유는 무엇입니까?jQuery가 클래스를 추가 또는 제거하지 않음

$('#crop').click(function (ev) { 
    ev.preventDefault() 
    $.post('frame.php?action=crop', dimensions, function (json) { 
     $('body').addClass('loading') 
     picture() 
    }, 'json') 
    $('body').removeClass('loading') 
}) 

크롬과 파이어 버그 콘솔은 빈, 그래서 오류가 없도록해야한다. jQuery 버전은 1.4.4입니다.

+0

그래서 무슨 일입니까? 추가되지 않거나 삭제되지 않습니까? – Brilliand

+3

세미콜론은 정말 좋은 생각입니다. – Pointy

+0

콘솔에 오류가 없다면 누락 된 세미콜론이 문제가되지 않을 수도 있습니다. – Brilliand

답변

4

제거하고 나중에 클래스를 추가하는 것입니다.

콜백 클래스를 $.post()에 추가하면 이후에 클래스가 제거 된 이후에 길게 발생합니다. 해당 행을 바꾸면 ($.post() 호출 후 콜백에서 제거하고 콜백에서 제거) 추가하면 원하는대로 가깝게됩니다.

+2

@ DanielA.White 조기 게시에 유감스럽게 생각합니다. 이제 고쳐 졌어. – Pointy

+0

고마워요. 이것은 많은 도움이되었습니다. 전에는 몰랐습니다. –

2

나는

$('#crop').click(function (ev) { 
    ev.preventDefault() 
    $.post('frame.php?action=crop', dimensions, function (json) { 
     $('body').addClass('loading') // here you should remove the loading! 
     picture() 
    }, 'json') 
    $('body').removeClass('loading') // here you should add the loading! 
}) 

그것은해야합니다 ... 당신은 순서와 혼합 생각 : 세미콜론 당신의 라인을 종료하면서 그

$('#crop').click(function (ev) { 
    ev.preventDefault(); 
    $.post('frame.php?action=crop', dimensions, function (json) { 
     $('body').removeClass('loading'); 
     picture(); 
    }, 'json'); 
    $('body').addClass('loading'); 
}); 

주 (;)이 필수는 그것은 최선의 방법입니다.

+0

답변 해 주셔서 감사합니다. 나는 그것이 좋은 습관이라는 것을 알고 있지만 나는 개인적으로 줄 끝의 소음을 좋아하지 않는다. –

+1

@airmattress. 문제를 줄일 수 있으며 축소 된 버전의 경우 필수 항목입니다. 너까지 ... 행운을 비네! – gdoron

+0

고마워, 나는 그걸 명심 하겠어! –

관련 문제