2012-07-21 2 views
0

요소의 '데이터'로 설정된 객체에서 함수 내에서 요소를 가져 오는 방법이 있습니까? 아무 것도 없으면이를 구현할 수있는 대체 방법은 무엇입니까?jQuery - 데이터 객체 내부에서 요소를 가져 오는 방법

var m = function(options){ 
    // Some initialization code here 
} 

m.prototype.doSomething: function() { 
    // How do i get the #an_element here? 
} 

$("#an_element").data('myObject', m); 

답변

0

이 생성자에 해당 요소를주고 있다고 할 수있는 가장 쉬운 방법은, 당신이 jsfiddle에 확인할 수 있습니다.

var m = function(options){ 
    // Some initialization code here 
    $.extend(this, options); 
} 

m.prototype.doSomething= function() { 
    // How do i get the #an_element here? 
    var _this=this; 
    if(_this.el && _this.el.length){ 
     _this.el.css({color:"black"}); 
    } 
} 
$(function(){ 
    var $el=$("#an_element"); 
    $el.data('myobject', new m({el:$el})); 
    $el.click(function(){ 
     var nn=$(this).data("myobject"); 
     nn.doSomething(); 
     return false; 
    }); 
}); 

당신은 당신이 데이터로 함수 자체를 넣어하려고하지만,이 같은 전에 객체를 생성해야한다는의 무슨 짓을했는지 실수 : $("#an_element").data('myObject', new m());

+0

요소를 생성자에 전달하지 않아도되도록하는 방법을 찾으려고했습니다. – arvinsim

0

나는 #an_element 안에 클래스 또는 ID 즉 선택기를 저장했다고 가정합니다. 이 시도 :

var m = function(options){ 
    // Some initialization code here 
} 

m.prototype.doSomething: function() { 
    var selector = $("#an_element").data('myObject'); 
    var required_element = $(selector); 
} 

$("#an_element").data('myObject', m); 
+0

나는이이 경우에 작동합니다 생각하지 않습니다 selector가 하나 이상의 요소를 반환합니다. – arvinsim

관련 문제