이전 목록 다음
채택완료

제이쿼리 플러그인 만들엇는데..오류 좀 봐주세요~!

아래와 같이 스크롤 플러그인을 만들엇는데요..

t.top 에서 오류가 발생이 되는데,, 왜그런가요 ? 작동은 되는데..흠

Uncaught TypeError: Cannot read property 'top' of undefined 

 

이렇게 뜨네요..흠​

 

Copy
$.fn.fixed =function($on,$b){ var t = this.offset();var p = 50;  var a =this $(window).scroll(function () {    if ($(this).scrollTop() > t.top - p) {       a.addClass('fixed');       if($on){           a.addClass('on',$b);       }    } else {        a.removeClass('fixed');        if($on){           a.removeClass('on',$b);       }    }});}

 

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트

var t = this.offset();

 

console.log( t );

 

라고 찍어보셔서, t 가 어떻게 나오는지 디버깅 하셔야 합니다.

 

var t = $(this).offset();

이렇게도 해보세요.

답변에 대한 댓글 1개

안녕하세요~!
원래 $(this) 로햇엇는데.. 어느 글에서 여기서$(this)는 $($(this)) 를 가르킨다고하드라고요.. 그래서 this로 변경한건데..그전도 ㅠㅠ 같은 에러가 생겻엇어요...........

흠..............................ㅠㅠㅠ

Copy
$.fn.fixed = function($on,$b){ 	var a = $('#아이디명'); 	$(window).scroll(function () {		if ($(window).scrollTop() > a.offset().top - 50) {		   a.addClass('fixed');		   if($on) a.addClass('on',$b);		   		} else {			a.removeClass('fixed');			if($on) a.removeClass('on',$b);		   		}	});}

답변에 대한 댓글 1개

안녕하세요~!

플러그인으로 쓸거라서........아이디명을 쓸수가 ㅠㅠ...없는데...

흠...

답변을 작성하려면 로그인이 필요합니다.