2012-03-14 2 views
0

확실하지 것은 내가 동적으로 사용 jQuery를 옵션은 플러그인에

은 기본적으로 내가의 라인을 따라 플러그인 구조를 가지고 ... 올바르게 접근하고있어 경우 :

(function($){ 

$.fn.xxxxx = function(options) { 

    var o = { 
     widgets: 'a,b,c', 
     a: { 
      id: 'abc', 
      title: 'ABC' 
     }, 
     b: { 
      id: 'def', 
      title: 'DEF' 
     }, 
     c: { 
      id: 'ghi', 
      title: 'GHI' 
     } 
    }; 

    var options = $.extend(o, options); 

    return this.each(function(options){ 

     var myplugin = { 
      init: function(){ 
       var x = o.widgets.split(','); 
       $.each(x, function(i,v){ 
        myplugin.widgets(i,v); 
       }); 
      }, 
      widgets: function(i,v){ 

       var t = o.v.title ? '<h3>'+o.v.title+'</h3>' : '' ; 

      } 
     } 
     myplugin.init(); 
    }); 
}; 

}) (jQuery를);

o.widgets 옵션의 문자열 값을 사용하여 o.a, o.b, o.c 옵션 중 하나를 호출 할 수 있습니까?

기본적으로 a, b 또는 c는 위젯 기능에 전달 된 다음 옵션 값을 할당하는 데 사용됩니다. 다음은 내가하고 싶은하지만 분명히 그런 일을 나던 것입니다 :

var t = o.v.title ? '<h3>'+o.v.title+'</h3>' : '' ; 

이 어떤 도움 감사합니다! 당신이 o.a에 액세스하려면

foo.bar === foo['bar']; 

그래서, 당신은 o['a'] 통해 액세스 할 수 있습니다

답변

1

음, 특히 자바 스크립트에 대한 좋은 점 중 하나는 다음과 동등한 점이다. 더, 당신은 다음과 같은 기능을 패션 수 복용 :

function herp (opt) { 
    return o[opt]; 
} 

... 그리고 var foo = herp('a'); 또는 뭔가처럼 호출합니다.

+0

합니다. 고맙습니다! – Lee

1

이 작업을 수행 할 수 있습니다 :이 작업을 수행 할 수 있습니다

var t = o['a'].title ? '<h3>' + o['a'].title + '</h3>' : ''; 

을 : 우수한

var v = 'a'; 
var t = o[v].title ? '<h3>' + o[v].title + '</h3>' : ''; 
+0

고맙습니다. 완벽하게 일했습니다. – Lee

관련 문제