home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2009/03/01/jQueryのattrメソッドでonClickを設定しようとしたけどIE7で無理でした。

作成日: 2009-03-01 00:18:37   /   last updated at: 2009-03-01 00:26:50
カテゴリ: JavaScript 

jQueryの1.2.6/1.3.2 で試したんですが、 JavaScript/PageNavi(2)を作っていた時に、<a>タグのonClickを動的に設定しようとして

$('#abc').attr('onclick', 'window.alert(123);');

とかしてみたんです。

Firefox2とOpera9では動いてくれたんですが、IE7で動きませんでした。jQueryのコードは追ってないので簡単な「できなかったよ」報告になってしまいますが、やっぱり素直に

$('#abc').click(function(event) { window.alert(123); });

としないと駄目ッスね。

そもそも何でそんな変なことしようとしたのかというと、onClick時にJsPrevNextPagerのclicknext()を呼びたいのですが、JsPrevNextPager()に渡すIDをどうやって指定しようかということで、ものは試しに 'onClick' 属性に文字列でJavaScriptを指定して、そこで動的にIDを埋め込もうとしたわけです。
イメージ的にはこんな感じにしようとしてました。

$('#' + this.id_next + ' a').attr('onClick', 'JsPrevNextPager(' + this.id + ').clicknext();');

Firefox/Operaで動いて「ヤッター」と喜んだのも束の間、IE7で玉砕し、動くコードに辿り着くまで実に5時間もかかってしまいました。スコープ絡みで色々つっかかりました。今時駄目すぎですが、とりあえず以上。

original url: https://www.glamenv-septzen.net/view/192