在此链接中:http://css-tricks.com/snippets/jquery/jquery-plugin-template/它有一行代码
// Add a reverse reference to the DOM object
base.$el.data("yourPluginName", base);
“对DOM对象的反向引用”是什么意思?
答案 0 :(得分:2)
假设你知道jQuery数据函数:
它在jQuery的数据缓存中存储对该类实例的引用,这意味着存储的实例可用于访问初始base
对象如果它在当前上下文中不可用。
这样,类实例可以在以后使用。 但是,在创建实例的初始类中使用prototype
关键字将修改实例。
所以你的意思是它将“base”的当前状态存储在数据缓存中,但是如果我们稍后对“base”进行更改,那么数据中的那个将不会受到影响?所以如果由于某种原因我们需要再次获得原始数据,我们可以做数据('yourPluginName')来检索它?你能举个例子说明这会有什么帮助吗?
似乎没有一个陈述是正确的。
正如我明显记得不够,data
中存储的东西只是对象的引用:
var obj = {};
obj.hello = "Hello";
$("#someElement").data("object", obj);
obj.world = " world.";
alert(
obj.hello +
$("#someElement").data("object").world
); // alerts "Hello world."
BTW,名称如此base
的JavaScript变量 - 事物(通常被视为that
或类似的东西)通常用于表示当前上下文,通过this
访问关键字,由于范围/上下文更改,在很多情况下更容易存储在另一个变量中,这将使当前上下文因此this
更改。
同样由于上下文问题,data
中的存储值可用于从另一个上下文访问特定对象实例(即this
代表其他内容时),而不是版本存储了副本之后不断使用的base
对象。
我希望这能回答你的问题:D
答案 1 :(得分:0)
它解决的技术和问题是一般的,不是特定于jQuery插件。可能存在Javascript对象对应于DOM元素并且包装特定于该DOM元素的逻辑的情况。此对象可能对监听该DOM元素中发生的点击等事件感兴趣。我们在这些回调中获得的信息是触发它的元素,而不是关联的对象。您可以使用jQuery的data
API或任何类型的地图来检索相应的对象,并使用它做一些事情。