2011-10-17 4 views
0

jquery에 ajax 호출이 이루어지지 않는 문제가 있습니다. 또한 dom의 상단에 클릭이 나타나서 .warning div를 숨기지 않아야합니다.Jquery ajax 호출이 이루어지지 않았습니다.

POST 요청이 이루어지지 않았 음을 방화 녀가 볼 수 있습니다.

$(document).click(function(e) { 
    if($('.warning').hasClass("active")) 
     $('.warning').hide(); 
}); 

$('.ero').click(function(e) { 
    e.stopPropagation(); 
    e.preventDefault(); 
      $.ajax({ 
     type: 'POST', 
     url: '/stem_op/3', 
     data: {id: idv}, 
     success:function(msg){ 
     $('.warning').fadeIn(500).css({ 
     display: 'block', 
     position: 'absolute', 
     left: position.left + 50, 
     top: position.top - 25 
    }).append(msg).addClass("active")} 
     });  
}); 
+0

클릭 이벤트입니까? 요소가 준비되기 전에 이벤트 처리기가 추가됩니까? – epascarello

답변

1

네를 사용해보십시오. .ready()가 없으면 코드가 즉시 실행됩니다. delegate와는 반대로 .click()을 사용하기 때문에 실행될 때 바인딩 할 것이 없습니다. 당신은 아마도 .ero 요소가 사용자 상호 작용을 기반으로 JS 동적으로 추가하려는 경우

$(document).ready(function() { 
    //code goes here 
}); 

, 당신이 사용할 수 있도록 할 것입니다 :

처럼 다이어 위의 준비에 포장 말한다 delegate.

또한 .click()은 기본적으로 bind()의 바로 가기이므로 적어도이 이벤트를 네임 스페이스로 사용할 수 있도록 시도해보십시오. 따라서 해당 요소에서 동일한 이벤트를 사용하는 다른 코드에 영향을주지 않으면 서 이벤트 핸들러를 바인딩, 바인딩 해제 및 리 바인딩하는 작업을 매우 쉽게 수행 할 수 있습니다.

//instead of 
$(".ero").click(function(e) { }); 

//something like this 
$(".ero").bind("click.mynamespace", function(e) { 
    //code here 
}); 
+0

에르푸스 –

+0

및 문서 .ready –

+0

과 링크가 있으므로 .click이 document.ready()에 싸여 있습니까? 그렇다면 Ajax 호출에 전체 메소드를 추가하십시오. 그것은 두 개의 인수, 데이터 및 상태를 가져옵니다. 요청이 이루어지고 있는지 확인하기 위해 상태에 대한 console.log를 수행하십시오. 또 다른 옵션은 클릭 핸들러 내부의 함수 시작 부분에 console.log를 던져서 이벤트가 캡처되는지 여부를 확인할 수있게하는 것입니다. – vernonk

0

$ ('. ERO') 아마 아직 존재하지 않았다

여기 내 JQuery와있다. ready에 포장, 또는 그것이 ERO 분류 한 요소가 아직 존재하지 않는 머리에 포함 된 경우 코드를 기반으로 live

$('.ero').live('click', function() { ... } 
+0

에라 클래스와 링크가 있습니다 –

관련 문제