2016-06-23 4 views
3

내 사용자 지정 함수를 연결하고 'this'의 컨텍스트를 유지하는 방법을 궁금합니다.jQuery - 사용자 지정 함수 연결

예 :

$.fn.foo = function() { 
    var html = '<div class="foo"></div>'; 
    if ($(this).hasClass(somthing) { 
    $(this).prepend(html); 
    } 
} 

$.fn.bar = function() { 
    var html = '<h3>bar</h3>'; 
    $(this).find('.foo').prepend(html); 
} 

$('body').foo().bar(); 

내가이 형식 오류를 얻을이 코드를 사용하려고 : 당신은에서 즉, 현재 요소 컨텍스트를 반환 this을 필요로 정의되지 않은

답변

6

의 특성 '줄'을 읽을 수 없습니다 당신은 사용자 정의 방법.

$.fn.foo = function() { 
 
    var html = '<div class="foo"></div>'; 
 
    if ($(this).hasClass('somthing')) { 
 
    $(this).prepend(html); 
 
    } 
 
    return this; //The magic statement 
 
} 
 

 
$.fn.bar = function() { 
 
    var html = '<h3>bar</h3>'; 
 
    $(this).find('.foo').prepend(html); 
 
    return this; //The magic statement 
 
} 
 

 
$('body').addClass('somthing').foo().bar();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

3

돌아 this :

$.fn.foo = function() { 
    var html = '<div class="foo"></div>'; 
    if ($(this).hasClass(somthing) { 
     $(this).prepend(html); 
    } 
    return this; 
}; 

$.fn.bar = function() { 
    var html = '<h3>bar</h3>'; 
    $(this).find('.foo').prepend(html); 
    return this; 
}; 

$('body').foo().bar();