我试图理解cluetip实际上是如何工作的。我有一个虚拟DOM结构,我做了一些警告,以检查在锚元素上调用cluetip('destroy')后是否已删除cluetip。然而,cluetip div似乎还活着。这真让我困惑......
如果我错了,请纠正我...... AFAIK,cluetip在网页上有1个实例,并且它存在于标签的层次结构中,即cluetip> cluetip-outer> cluetip-内。当它首次附加到html元素(在我的例子中是一个锚点)时,它会将自身附加到DOM结构的某个位置。
所以问题:在html元素上调用cluetip('destroy')实际上会删除cluetip,还是会删除/重置cluetip中的某种变量(如果是这样,哪个变量)?或者我完全不在这里?
感谢。
答案 0 :(得分:3)
看起来所有的destroy函数都是删除事件触发器(第28-30行)
if (js == 'destroy') {
return this.unbind('.cluetip');
}
如果您想确保cluetip中的数据消失,请自行清除:
$('#cluetip-inner').empty();
更新:要回答关于查看某个元素是否有任何约束的问题,我会将您引用到我从James Padolsey's site找到的内容:
// List bound events:
console.dir( jQuery('#elem').data('events') );
// Log ALL handlers for ALL events:
jQuery.each($('#elem').data('events'), function(i, event){
jQuery.each(event, function(i, handler){
console.log( handler.toString() );
});
});
*注意:console
指的是Firebug控制台。
答案 1 :(得分:3)
尝试以下方法:
$(this).cluetip('destroy');
$(this).remove();
remove()函数也应取消绑定事件。