3

我试图弄清线索提示的实际工作原理。我有一个虚拟 DOM 结构,我对它进行了一些警报,以检查在锚元素上调用线索提示('destroy')后是否删除了线索提示。但是,线索提示 div 似乎仍然很活跃。这真的让我很困惑...

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

所以问题是:在 html 元素上调用线索提示('destroy')实际上会删除线索提示,还是会删除/重置线索提示中的某种变量(如果是,哪个变量)?还是我在这里完全偏离了轨道?

谢谢。

4

2 回答 2

3

看起来销毁函数所做的只是删除事件触发器(第 28-30 行)

if (js == 'destroy') {
  return this.unbind('.cluetip');
}

如果要确保提示中的数据消失,则自行清除:

$('#cluetip-inner').empty();

更新:要回答有关查看元素是否绑定任何内容的问题,我将向您推荐我从James Padolsey 的网站上找到的内容:

// 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 控制台。

于 2009-12-23T02:38:38.827 回答
3

尝试以下操作:

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

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

于 2009-12-23T02:41:05.623 回答