我正在制作的数据工具中有两个功能 -showEditDv(object)
和editDv(object)
. 如果您还没有猜到,Dv
代表数据值。showEditDv
当您单击编辑数据图标时调用。它会生成一个Opentip工具提示,(将)允许您编辑数据,调用方式如下:showEditDv(this);
在 onclick 属性中。这是该函数的代码(不,实际中没有内联注释):
function showEditDv(object) {
var name = $(object).attr("data-name"); // string(name) now holds the name of the data value
var input = new Opentip($(object), {target: null, showOn: null, hideTrigger: "closeButton"});
input.setContent("<label>Name:</label><input type='text' value='" + name + "' class='dv-add-name' /><label>Value:</label>input type='text' class='dv-add-value' value='" + data[name] + "' /><button onclick='editDv(" + $(object) /*<-- problem */ + ");'>Apply</button>");
input.show();
}
editDv()
当“应用”按钮调用该函数时,就会出现问题。因为对象在字符串中被引用(我认为!),对象引用被打印为[object Object]
,并且该函数无法隐藏 Opentip,因为它没有引用。这是代码editDv()
:
function editDv(object) {
var input = $(object).data("opentips")[0]; // data("opentips") is an array of objects
input.hide();
}
所以我的问题是:如何将input
对象从showEditDv
toeditDv
作为参数传递,或者是否有更好的方法来完全做到这一点?