フィドルの例
JavaScript
$('#btn').on('mouseover', function() {
$('#tt').show();
}).on('mouseleave', function() {
$('#tt').hide();
}).on('click', function() {
$(this).remove();
});
HTML
<button id="btn">press me</button>
<div id="tt">tooltip</div>
基本的に、カーソルがまだ要素の上にあるときに要素を削除すると、mouseleave
イベントはトリガーされません。要素がなくなった場合、イベント/バインディングもなくなるため、これは理にかなっていると思います。
しかし、どうすればそれを回避できますか?
確かに、私もイベントに入れることができ$('#tt').hide();
ましたclick
が、より一般的な解決策を望んでいました. 私の実際の例はもう少し複雑で、要素がいつ削除されるかは常にわかりません。
ondestroy
削除される直前に発生するイベントやフックできるものはありませんか?