2012-01-30 2 views
1

"새 의견 x 개"링크가있는 페이지가 있습니다. 그런 다음 해당 링크를 숨기고 싶은 링크를 클릭합니다. 뒤로 버튼을 클릭하여 내 페이지로 돌아 가면 해당 링크가 계속 숨겨지기를 원합니다 (이제는 주석을 보았 기 때문에 더 이상 새로운 내용이 표시되지 않습니다).클릭하면 링크가 숨김

간단한 자바 스크립트로이를 수행 할 수 있습니까? 성능상의 이유로 원본 페이지를 다시로드하고 싶지 않습니다. 클릭하면 링크를 숨기려면

+2

쿠키에 표시하거나 숨길 링크 목록을 유지 한 다음 페이지가로드 될 때마다 해당 쿠키를 기반으로 쿠키를 표시하거나 숨길 필요가 있습니다. –

답변

1

음, 아마도 도움이 될 수 있습니다.

사용중인 프로그래밍 언어에 따라 세션 값이 필요합니다. 예를 들어

, jQuery를 사용하여 당신이 PHP를 사용하고 랬 :

<?php 
//start the session 
session_start(); 

//set the attribute 
$_SESSION['hide'] = false; 

?> 
<script> 

//function to hide all class='test' elements 
function hide(h){ 
if(h){ 
    $('.test').hide(); 
} else { 
    $('.test').show(); 
} 
} 

/*do this always when page loads 
* verify with the value stored in session to hide or not the links 
*/ 
window.onload = hide(<?php echo $_SESSION['hide']; ?>); 

//onready 
$(function() { 

//when link class='test' is clicked 
$('.test').click(function(){ 

    //fadeOut or just $(this).hide(); 
    $(this).fadeOut(); 

    //set the session to hide = true 
    <?php $_SESSION['hide'] = true; ?> 

}); 

}); 
</script> 

//here goes your html 
<body> 
<a href="javascript:void(0);" title="Link" class="test">I am link 1</a> 
<br/><br/> 
<a href="javascript:void(0);" title="Link" class="test">I am link 2</a> 
<br/><br/> 
<a href="javascript:void(0);" title="Link" class="test">I am link 3</a> 
<br/><br/> 
<a href="javascript:void(0);" title="Link" class="test">I am link 4</a> 
</body> 

내 생각은 당신을 위해 작동 바랍니다.

2

은 간단하다 :

var a = document.getElementById("yourA"); 
a.onclick = function(){ 
    this.style.display = "none"; 
    return false; 
}; 

이 조금 더 많은 작업을 필요로합니다 다음 페이지로드에 대한 숨겨진 그것을 유지하기 위해. 링크를 숨긴 다음 쿠키를 만들고 페이지가로드 될 때마다 동일한 쿠키를 읽어야합니다 (그에 따라 숨김).

+0

감사합니다. 페이지로 다시 이동할 때 bfcache가 자바 스크립트 상태를 유지하지 않을까요? – MotoTribe

+0

@mototribe - 솔직히 bfcache가 어떻게 작동하는지 모르겠습니다. –

0

이것은 기본 JavaScript로 수행 할 수 있습니다. 일반적으로

, 여기에 포함 된 단계는 다음과 같습니다

  • 지금 가입 미리 작성 콜백
  • 에게 콜백을 클릭을합니다 사용하여 DOM 요소에 이벤트 핸들러를 '클릭'하고 (그것을 이벤트 객체를 전달합니다 e)
  • 이벤트 개체의 e.target 특성을 기반으로 요소를 숨길 수 있습니다.
관련 문제