2014-12-28 3 views
3

load() 함수를 사용하여 전체 페이지를 다시로드하지 않고도 PHP 페이지의 일부를 새로 고치려고합니다. 이 질문은 이전에 묻어 왔으며 발견 한 모든 해결책을 시도했습니다.jQuery 함수가 전체 페이지를 다시로드합니다.

그것은 잘 내 <a class="remove" href="...> 클릭 처음 작동하지만 그렇게 두 번째 클릭에 전체 페이지를 다시로드하고 ...

그것은 여기 내 첫 번째 게시물입니다하지만 난 내 설명은 명확했다 바랍니다. 여기에 js가 있습니다.

$(document).ready(function() { 
$(".remove").on('click', function(event){ 
    var url = $(this).attr('href') ; 
    event.preventDefault(); 

    $('#containerWrapper').load(url + " #containerWrapper"); 
}); 
}); 

감사합니다. 모든이의 첫

+0

가 작동하는지 주셔서 감사합니다, 그것은 두 번째에 다시로드 왜 어떤 특별한 이유 딸깍 하는 소리? 바인딩의 손실 때문에? –

답변

1

귀하의 코드는, 전체 페이지를 다시로드합니다 : 그리고 나는 #containerWrapper
URL 페이지의 마크 업 내부의 #inner로드했습니다. 당신은 다른 모든 바인딩 이벤트가 손실됩니다,이 수준에 이벤트를 위임해야합니다

당신은 containerWrapper 수준
+0

이벤트를 클릭 위임해야

$(document).ready(function() { $('#containerWrapper').on('click', ".remove", function (event) { var url = this.href; event.preventDefault(); $('#containerWrapper').load(url + " #containerWrapper"); }); }); 
Aldhyr

-1

는 Y 조언 내가 정확하게 당신을 좋아하는 몇 가지 코드를 사용했습니다

$(window).bind("load", function() { 
//your codes here 
}); 

대신 $(document).ready()
으로 사용하는 것입니다 그리고 그것은 잘 작동합니다. 그러나 단 하나의 차이!

$(".remove").on('click', function(event){ 
    var url = $(this).attr('href') ; 
    $('#containerWrapper').load(url + " #inner"); 
event.preventDefault(); 
}); 

나는 결국 prevent을 넣었습니다! .remove 요소가 #containerWrapper의 자식이기 때문에

<div id="containerWrapper"> 
    <div id="inner"> 
    </div> 
</div>