ページ上の画像にマウスオーバー機能と反対のマウスアウト機能を付けて、ホバーしたときに大きなバージョンを表示します。関数は livequery を介して画像要素にアタッチされます。
問題は、関数を添付したい画像だけでなく、ページ上のすべての要素に関数が添付されているように見えることです。関数にa を入れるconsole.log
と、ページ上の要素にマウスを出し入れするたびに印刷されます。
livequery が非常に多くのものにバインドされている理由はありますか?
コードは次のとおりです。
Assets.registerPopups = function(selector, context) {
var targets = jQuery(selector, context);
targets.livequery("mouseover", function(e) {
console.log("mouseover e.target", e.target);
});
targets.livequery("mouseout", function(e) {
console.log("mouseout e.target", e.target);
});
};
jQuery(function(){
Assets.registerPopups(".photo, .video, .flash, .h264", "#controller.project_assets.index")
});
注:これは私が継承した不十分な保守プロジェクトであるため、jQuery 1.2.6 と livequery 1.0.2 を扱っています。私はそれをアップグレードしようとしている最中です。