0

有没有办法在设置为元素的“数据”的对象中的函数内获取元素?如果没有,有哪些替代方法可以实现这一点?

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);
4

2 回答 2

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);
于 2012-07-21T04:17:26.260 回答
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());

于 2012-07-21T04:18:22.853 回答