2009-12-23 50 views
3

我想弄清楚cluetip的实际工作原理。我有一个虚拟的DOM结构,我做了一些警告,以检查在锚元素上调用cluetip('destroy')之后是否移除了cluetip。然而,线索div依然看起来还活着。这真让我困惑......jQuery cluetip('destroy')不会销毁/删除提示?

纠正我,如果我错了...... AFAIK,cluetip在网页上有1个实例,它存在于标签层次结构中,即cluetip> cluetip-outer> cluetip-inner 。当它首次附加到一个html元素(在我的情况下,一个锚点)时,它附加到DOM结构的某处。所以这个问题:在HTML元素上调用cluetip('destroy')实际上是删除了cluetip,还是会删除/重置cluetip中的某种变量(如果是这样,哪个变量)?或者我完全不在这里?

谢谢。

回答

3

它看起来像所有的破坏功能所做的是如果你想确保cluetip数据被删除了事件触发(28-30行)

if (js == 'destroy') { 
    return this.unbind('.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控制台。

+0

我想检查事件触发器是否已绑定/未绑定。我该如何解决这个问题? – BeraCim 2009-12-23 02:50:57

2

尝试以下操作:

$(this).cluetip('destroy'); 
$(this).remove(); 

的remove()函数也应该取消绑定的事件。