MooTools More1.2.4.2のツールチップ表示クラスTipsにあるバグの修正方法について。
主な症状
ツールチップ表示を有効にした要素にマウスオーバーしてからマウスアウトすると、
FireBugで element.getParent is not a function というエラーが出る。というもの。
(圧縮してあるとelementがbになる)
エラー行数は1142行目(未圧縮)
エラーは最初の1度しか出ない。
修正方法
原因となっているTipsのfireForParentメソッドを入れ替える。
ver 1.2.4.2 Original Code:
fireForParent: function(event, element){
if (!element) return;
var parentNode = element.getParent();
if (parentNode == document.body) return;
if (parentNode.retrieve('tip:enter')) parentNode.fireEvent('mouseenter', event);
else this.fireForParent(parentNode, event);
}
Fix Code:
fireForParent: function(event, element){
if (!element) return;
var params = Array.link(arguments, {event: Event.type, element: Element.type});
var parentNode = params.element.getParent();
if (parentNode == document.body) return;
if (parentNode.retrieve('tip:enter')) parentNode.fireEvent('mouseenter', params.event);
else return this.fireForParent(parentNode, params.event);
}
参照元:Tips: “element.getParent()” not working, because “element” is of type Event
このバグは1.2.4.3で修正される予定。