2013-06-16 2 views
3

언뜻보기에 어리석은 질문이 있습니다. 알아내는 데 문제가있어 사용 할 때마다 아무 일도 일어나지 않습니다. 나는 이런 식으로 나 자신에 의해 작성 jQuery를에 플러그인이 있습니다매개 변수를 jQuery 플러그인에 전달하는 방법

(function(){ 
$.fn.myPlugin = function(options){ 
var options = $.extend({ 
firstParameter : null; 
} 
// the rest of the plugin 
})(jQuery) 

을하지만이 같은 HTML 파일에서 호출 할 때 : ("#object").myPlugin(2);를, 그것은 (내가 통과 한 매개 변수를주의) 작업이 실패합니다. 하지만 인수를 건너 뛰고 다음과 같이 호출하면 ("#object").myPlugin();, 모두 작동합니다. 문제가 무엇입니까?

미리 감사

+0

음,'옵션 :

이제
(function($) { $.fn.extend({ myPlugin: function(options) { var defaults = { something: 23, otherThing: 'hello' }; options = $.extend(defaults, options); console.log(options.something); console.log(options.otherThing); } }); })(jQuery); 

이이 something 옵션을 재정의 작동합니다 (잊지 말라가 객체 합격을) '는 대상이되고, 아무것도 확장하지 않습니다. 매뉴얼을 다시 한 번 확인해보십시오. 뭔가 빠졌습니다. – elclanrs

+0

첫 줄에'options'을 덮어 씁니다. – akonsu

답변

0

에 당신은 당신이 그것을에 jQuery를 통과() {} 매개 변수없이 기능을하는 함수를 정의합니다. 문제의 원인 일 수 있습니다.

(function(){ 
    // nothing is the $ here 
    $.fn.myPlugin = function(options){ 
    var options = $.extend({ 
    firstParameter : null; 
    } 
    // the rest of the plugin 
})(jQuery) 

당신은

(function($) {})(jQuery) 

로 변경해야하며, 나는 그것이 작동 것이라 생각합니다. 이 도움말을 희망

27

이 원하는 :

$('#object').myPlugin({something: 17}); 
+3

오! JQuery에 너무 익숙해 져서 고마워. 대단히 감사합니다 !!!!!! –

+1

내 대답을 수락하는 것은 의견에 저에게 감사하는 것보다 낫습니다. – eepp

+0

죄송합니다. 내 평판이 15보다 높을 때 가능합니다. –

관련 문제