2014-02-24 2 views
0

preventDefault()가 작동하지 않는다는 것에 관한 많은 게시물이 있지만 그 중 하나에 대해서는 아무 것도 없습니다.Javascript Javascript가 기본 작동하지 않음을 방지합니다.

내가하고있는 모든 것은 click 이벤트를 포착 한 다음 응답에서 html을 추가하지만 preventDefault()가 페이지를 다시로드하지 못하게하고 왜 혼란스러워하는지입니다. 여기

<div class="slide_pane"> 
<div class="profile_content"></div> 

<div class="account_bottom_bar"> 
    <ul class="bottom_bar_list"> 
    <a href="/profiles/load" class="sidebar_link"> 
     <li> 
     <p>Content</p> 
     </li> 
    </a> 
    </ul> 
</div> 

그리고는 내 JS :

여기 내 HTML의

$(document).scroll(function() { 
ajaxView(); 
}); 

var ajaxView = function() { 
$('.sidebar_link').click(function(e) { 
e.preventDefault(); 
$.ajax ({ 
    type: 'GET', 
    url: $(this).attr("href") 

    }).done(function(resp) { 
    $('.profile_content').append(resp); 
    }); 
}); 
}; 

하지만 해당 작업을 쳤을 때, 그냥 새 화면에서 응답에서 HTML을로드합니다.

어떤 아이디어 ?? 감사!

+3

이 예에서'.sidebar_link' 요소 : 여기

$(document).ready(function() { $(".sidebar_link").click(function(event) { event.preventDefault(); $(this).css("color", "red"); }); }); 

링크에에서는 event.preventDefault을 (사용하는 방법 예)입니다 ? 사용자가 페이지를 스크롤 할 때마다 해당 요소에 새 이벤트 처리기를 추가하는 것처럼 보입니다. 이는 정말 좋지 않습니다. –

+0

가능한 복제본 [jQuery anchor preventDefault] (http://stackoverflow.com/questions/3786898/jquery-anchor-preventdefault) –

+0

죄송합니다. Felix Kling. 그냥 편집했습니다 ... 링크에 있습니다 – user3029619

답변

0

HTML에 sidebar_link가 없기 때문에 아무런 변화가 없습니다. 에서는 event.preventDefault의

사용 예() : http://jsfiddle.net/LUKVT/

+0

죄송합니다. 방금 편집했습니다 – user3029619

+0

코드를 사용하고 있으며 여기에 다시로드되지 않습니다. http://jsfiddle.net/y4FRr/ 누락 된 것이 있습니까? – martynas

+0

그래서 나는 방금 .ready : 대신에 document.scroll을 사용하고있는 것으로 나타났습니다. 그러나 이상하게 여겨지는 것은 크롬 검사기를 가져 와서 해당 작업을 수행했을 때 다시로드되지 않지만 관리자가 없었을 때였습니다. 위로, 그것은 다시로드 할 것입니다 ... 그 부분을 실제로 얻지 마십시오 – user3029619

관련 문제