有没有办法在设置为元素的“数据”的对象中的函数内获取元素?如果没有,有哪些替代方法可以实现这一点?
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);
有没有办法在设置为元素的“数据”的对象中的函数内获取元素?如果没有,有哪些替代方法可以实现这一点?
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);
我假设你在#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);
最简单的方法是将该元素提供给构造函数,您可以在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());