有没有办法将元素放在一个被设置为元素“数据”的对象中的函数内?如果没有,有哪些替代方法可以实现这一点?
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 :(得分: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);
答案 1 :(得分: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());