2012-04-18 3 views
0

클릭을 활성화하기 전에 일부 아약스 POST를 보내려고합니다.

$('.unread a').click(function(){ 
    ele = $(this); 
    $.post('ajax/notification.php', { 
    info : ele.attr('title') 
    }, 
    function(data) { 
     if(data != 'frack') { 
      ele.addClass("read"); 
      ele.removeClass("unread"); 
      window.location = ele.attr("href"); 
     } 
    }); 
    return false; 
}); 

하지만 링크를 클릭 할 때, 그것은는 $ .post를 보낼 수있는 시간을하지 않고 페이지로 직접 이동 :

나는이 시도.

아이디어가 있으십니까?

+0

와이 이미'return false;를하고 있는데,'preventDefault()'를 호출하는 것과 같은 일을해야합니다. 이 코드가 실행되는 HTML을 게시 할 수 있습니까? 선택기가 잘못되어 이벤트 핸들러가 실제로 바인딩되지 않을 수도 있습니다. –

+0

그냥 확인하십시오. 그리고이 페이지에 다른 JS 오류가 없습니까? –

+0

ele.attr ("href")에서 ele.parents ("li"). attr ("href")로 가정되는 오류가 발생했습니다. 나는 그것이 지금 일하고 있다고 생각한다 : | –

답변

1

이 어딘가에

$('.unread a').click(function(e){ 
     e.preventDefault(); 
이 그 일에서 링크를 방지

http://api.jquery.com/event.preventDefault/

+0

동일한 실수를했지만 코드에서'return false;'는'preventDefault()'와 같은 일을해야합니다. –

1

을 보낼 수있는 링크를 방지해야한다는 기본 동작을입니다 그냥 실현 그래서

preventDefault(); 

$('.unread a').click(function(e){ 
    e.preventDefault(); 
    ele = $(this); 
    $.post('ajax/notification.php', 
       { info : ele.attr('title') 
        }, 
     function(data) { 
     if(data != 'frack'){ 
       ele.addClass("read"); 
       ele.removeClass("unread"); 
       window.location = ele.attr("href"); 
      } 
     }); 
    return false; 
}); 
관련 문제