メモ】jQueryのclick関数がsafariだけでエラー。TypeError: ‘undefined’ is not a function (evaluating xxxx.click()と出る
2014年03月12日 15時07分
Lionのsafari(5.1.7)でjQueryのclick()関数を実行したらTypeError: ‘undefined’ is not a function (evaluating xxxx.click()と出た。
エラーメッセージでググると以下のページを発見。
「言語定義はclick()関数はHTMLInputElementにのみだよ」って感じかな。
確かにaタグに対して実行していたので納得。
でもsafariもバージョン上げるとエラー出ないんだよ。
納得いかないまま該当箇所に関してはjQuery使わずにevent作って対応。
1 2 3 4 5 6 7 8 |
// 対象オブジェクト取得 var element = $('#foo'); // イベント作成 var click_ev = document.createEvent("MouseEvent"); // 初期化 click_ev.initEvent("click", true, true); // 発火 element.dispatchEvent(click_ev); |
IEの旧バージョンがディスられまくっててsafariの旧バージョンが皆に忘れされれているのは母数の少なさに加えてOSの安さがある。
この症状報告した会社の人もLionから無償でアップデートできるんだから特別な理由がない限りさっさと最新OSに変えて欲しい。