2016-11-12 1 views
0

이 jQuery 함수를 사용하여 클릭하면 div 내에서 외부 페이지를로드합니다. div에서 외부 페이지로드 및 언로드

$(document).on("click", ".more", function() { 
 
$("#wait").load("www.google.com") 
 
}), 
 
$(document).on("click",".more",function(){ 
 
$("#wait").empty() 
 
})
#wait{ 
 
    width:80vw; 
 
    height:80vh; 
 
    position:fixed; 
 
    top:30px; 
 
    left:30px; 
 
    background:red; 
 
} 
 

 
#more{cursor:pointer}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="more">CLICK</div> 
 
<div id="wait"></div>

그것은 작동하지만 내가 보여 클릭하면 다시는 비어있을 것입니다 div에

.
.empty()의 대안은 무엇입니까?

감사합니다.

+0

우리는 왜 .more'와'.less'가 같은지 알 수있는 방법이 없기 때문에 더 많은 HTML 컨텍스트를 보여줄 필요가 있습니다. 'show()'와'hide()'또는 단순히'toggle()'을 원하는 것처럼 들립니다. 이 모든 것들을 [jQuery API] (http://api.jquery.com/)에서 찾을 수 있습니다. – charlietfl

+0

@charlietfl .more를 고려해야합니다. 버튼 하나만 클릭하면 이름이 변경됩니다. 로드하고 토글하고 싶지만 토글 할 때 해당 페이지가 div에서 사라지 길 원합니다. – Federico

+0

하지만 솔직히 말해서 [mcve] – charlietfl

답변

2

게시물에서 한 번로드 한 다음 토글하려는 것으로 보입니다.

$(document).on("click", ".moreorless", function() { 
    if ($(this)hasClass("more")) { 
    $("#wait").load("about.html"); 
    $(this).toggleClass("more less"); 
    } 
    else { 
    $("#wait").empty(); 
    $(this).toggleClass("less more"); 
    } 
}); 
+0

정확하게로드하고 싶으면 토글을하고 싶을 때가 있습니다. 토글하면 페이지에서 사라지기를 원합니다. 난 당신의 코드를 시도하고 그것은 @mplungjan 작동하지 않는 것 같아요 – Federico

+0

"작동하지 않는"의미는 무엇입니까? 콘솔의 오류? – mplungjan

+0

오류는 없지만 hide() 함수는 div에서 콘텐츠를 삭제하지 않습니다. – Federico

1

왜 : 동일한 버튼을 이미

$(document).on("click", ".more", function() { 
    $("#wait").load("about.html"); 
    $(this).toggleClass("more less"); 
}); 
$(document).on("click",".less",function(){ 
    $("#wait").empty(); 
    $(this).toggleClass("less more"); 
}); 

하나의 이벤트 핸들러를 시도별로 어떤 것으로 보이는이 시도 클릭 추가하고 각 시간을 삭제하려면

$(document).on("click", ".more", function() { 
    var $wait = $("#wait"); 
    if ($wait.html().length==0) $wait.load("about.html"); 
    $wait.show(); 
    $(this).toggleClass("more less"); 
}); 
$(document).on("click",".less",function(){ 
    $("#wait").hide(); 
    $(this).toggleClass("less more"); 
}); 

페이지로드시 데이터를로드 한 다음 버튼을 클릭하면 toggle() 디스플레이가로드됩니까?

$(function(){ 
    // add the content right when page loads 
    $("#wait").load("about.html"); 
    $('#more').click(function(){ 
     // toggle display 
     $("#wait").toggle(); 
     // toggle class 
     $(this).toggleClass("less more"); 
    }); 
}); 
+0

나는 같은 것을 물었고 거의 같은 것을 올렸다. 그는 클릭을로드하고 나중에 컨텐츠를 제거하기를 원합니다. – mplungjan

+0

페이지가 훨씬 더 가볍지 만 실제로로드 된 컨텐츠는 그곳에 머무를 수 있다는 느낌이 들었습니다. upvote – Federico

+1

ajax에 의해로드 될 때 * "빛"*에 대해 걱정할 필요가 없습니다. 아약스가 페이지로드 이후에 완료 될 것이기 때문에 전반적인 초기 페이지로드 속도에 영향을 미치지 않습니다. – charlietfl