jQuery cluetip('destroy')不会破坏/删除cluetip?

时间:2009-12-23 01:21:03

标签: javascript jquery cluetip

我试图理解cluetip实际上是如何工作的。我有一个虚拟DOM结构,我做了一些警告,以检查在锚元素上调用cluetip('destroy')后是否已删除cluetip。然而,cluetip div似乎还活着。这真让我困惑......

如果我错了,请纠正我...... AFAIK,cluetip在网页上有1个实例,并且它存在于标签的层次结构中,即cluetip> cluetip-outer> cluetip-内。当它首次附加到html元素(在我的例子中是一个锚点)时,它会将自身附加到DOM结构的某个位置。

所以问题:在html元素上调用cluetip('destroy')实际上会删除cluetip,还是会删除/重置cluetip中的某种变量(如果是这样,哪个变量)?或者我完全不在这里?

感谢。

2 个答案:

答案 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()函数也应取消绑定事件。