ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

[Jquery]yuga.jsを使った画像ロールオーバーが動作しないのを修正する

March 04 2018

他人が作ったサイトを引き継いで管理、というのもけっこう仕事の内容としては多いのです。
「えーと・・・」とざっと中身を見て「うわあ」って思う事も多いですけども(笑)
中には今はもうまず新規制作ではやることのなくなったフレームサイトとテーブルでガッチガチに組んだサイトとかもございます。
行間調節するのにspacer.gifで調整しまくってたあの頃が懐かしい。
Netscape Navigatorでも引っ張り出してきましょうかねw

さて、余談とおっさんの昔語りはこれぐらいにしてと。

自分ではあんま使わんかったんですが、jQueryのライブラリでyuga.jsってがよう使われてましてな。
http://www.kyosuke.jp/yugajs/

サイト制作でよく使う機能をひとまとめにしました!って物で確かに便利そうではあります。
しかし、このyuga.jsの最終更新は2012年2月4日。
5年以上も更新がない、となるともうトラブルの予感しかしない。

マウスによるロールオーバーが動作しない、という報告を受けたサイトにもこのyuga.jsが使用されてました。
調べてみるとどうもブラウザのバージョンアップの際に追加された属性とyuga.jsの記述がバッティングしてしまったのが原因だそうです。

Chromeのバージョン38によるyuga.jsの画像ロールオーバー不具合
http://www.risewill.co.jp/blog/archives/2208

Google Chromeのバージョン38は2014年10月のリリース。
yuga.jsの更新停止から2年経ってるので、時期的には合致します。

これはyuga.jsの中の[currentSrc]という属性の名前を変更する事によって動作するようになります。

this.currentSrc = this.originalSrc.replace(new RegExp(‘(‘+c.postfix+’)?(\.gif|\.jpg|\.png)$’), c.postfix+”$2″);
$(this).attr(‘src’,this.currentSrc);

こういう風に書かれている場合

this.currentSrcYuga = this.originalSrc.replace(new RegExp(‘(‘+c.postfix+’)?(\.gif|\.jpg|\.png)$’), c.postfix+”$2″);
$(this).attr(‘src’,this.currentSrcYuga);

みたいに[currentSrcYuga]に置き換えると無事に動作するようになりました。
修正する際は一括置換でやりましたが大丈夫でした。

| Posted in Javascript | Comments (0)

Post a Comment

※メールアドレス、URLは任意入力です。メールアドレスは入力しても公開されません。

« Jul 2018 August 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31