# a태그 기본동작
앵커?해쉬? 인 # 는 현재 페이지에서의 이동을의미한다.
.....
<a href="#" id="abc">aaa</a>
.....
<a href="#abc">fff</a>
따라서 fff누르면 #abc( 아이디가 abc) 있는곳으로 화면이 이동( 실질적인 경로이동X , 현재페이지내에서이동)
url상태는 ~~#abc
거기서 aaa를누르면 # 는 최상위...페이지 젤 위로 이동함!
url상태는 ~~#
여기서 뒤로가기누르면 #abc로 이동.
url상태는 ~~#abc
거기서 다시 뒤로가기누르면
url상태는 ~~
이것은 a태그의 위치로 바로이동가능함
url에 ~~~#abc 입력하면 <a href="#abc">fff</a> 로 바로 이동함
# a태그(앵커)로 javascript function 호출하는법 2가지
1.
<a href="javascript:callFunction();">javascript function</a>
this가 전달되지않음
2.
<a href="javascript:void(0);" onclick="callFunction();">onclick function</a>
this전달됨
<a href="#" onclick="callFunction();">call function</a>
문제점 :
onclick이벤트후 href를탄다.
위와 같이 onclick 으로 함수호출 시 함수 호출 후 이벤트 버블링으로 인해 anchor 를 타서
브라우저 상단으로 이동해 버리는 문제가 있습니다.
사실 "#wown" 하면 id가 wown인걸 찾아감
그냥 #라고넣으면 페이지꼭대기(스크롤이동) 로 이동함
따라서 함수처리후 href를 타는것을 방지하기위해 이벤트 내에서 return 함수명();
해주고 함수내에서 빠져나갈때 무조건 return false를줌
해결방법 :
피연산자를 실행하되 피연산자에서 처리된 값을 무시하고 무조건 undefined 를 return 하게
해주는 void 함수를 사용하여 코딩을 할 수가 있다.
특정브라우저에서 페이지 이동안되므로 아래와같이...
<a href="javascript:void(0);" onclick="callFunction(); return false;">call function</a>
또는
<a href="#" onclick="callFunction(); return false;">call function</a>
<a href="#" onclick="return false;">call function</a>
또다른방법
<a href="#" id="aa">fff</a>
$("#aa").on("click",function(e){
e.preventDefault(); // 추가이벤트를 막아서 #의 최상위이동막음!!!
alert(1);
})
# ajax호출시 뒤로가기이슈
두번째가 제대로인듯... 처음꺼는 뒤로가기라는버튼을 만들때인듯....
최초 url로 요청하자
url : ~~selectBoardList.do
그럼 최초 로딩하면서 1페이지 호출한다.
selectBoardList(1);
요청시
gfv_currPage 변수에 현재페이지 등록
selectBoardList(1)에의해 ajax조회
조회후 콜백에 url에 해쉬붙임...
document.location.hash = "#"+data.paging.page;
그럼 url이 위에서 아래로 변함( 즉, 현재페이지번호를붙혀준거임 )
url : ~~selectBoardList.do#1
그리고 해쉬변경이벤트등록
아래와같이 해쉬등록할때 번호랑 현재페이지번호가같으면 동작안함
뒤로가기로인해 hash가 이전 hash로 변경되었을때 현재페이지번호와 다르기때문에
$(window).on('hashchange',function(){
var hash = parseInt(location.hash.slice(1));
// 최초 selectBoardList 조회
// selectBoardList 콜백시 해쉬등록으로인해 selectBoardList조회
// 따라서 두번 selectBoardList 되는걸막음
if( hash != gfv_currPage){
selectBoardList(hash);
}
});
페이지이동버튼
아래처럼 리턴false해줘야 href="#" 동작안함
'<a class="page-link" href="#" onclick="_movePage('+ i + '); return false;">'+ i + '</a>';
'JavaScript' 카테고리의 다른 글
input type 'file' 값 변경 불가 (0) | 2019.03.25 |
---|---|
data-* attribute이용하기 (0) | 2019.03.04 |
테이블 정렬(오름/내림) + 테이블체크박스(ALL) (0) | 2019.03.04 |
meta (0) | 2019.03.04 |
JSON객체 ( JavaScript Object Notaion ) (0) | 2019.03.04 |