要素のリサイズイベントを取りたいが、jQueryだけでは出来ないみたいなので、探していたらこういうものを見つけた。
http://d.hatena.ne.jp/cyokodog/20101101/exresize01
https://github.com/cyokodog/jquery.ex-resize
ただ、このままだとjQuery1.9以降でエラーがでるみたいなので、その部分だけとりあえず動くようにしてみた。
この変更を入れると、古いブラウザに対応できなくなるのかな?
古いブラウザも対応する必要がある場合は、ここのブラウザ判定処理をそれ用に書き直せばいけると思う。
$.ex.resize = function(idx , targets , option){
if ($.isFunction(option)) {
option = {callback : option};
}
var o = this,
c = o.config = $.extend({} , $.ex.resize.defaults , option);
c.targets = targets;
c.target = c.watchTarget = c.targets.eq(idx);
c.index = idx;
// ----------
// c.oldBrowser = $.browser.msie && ($.browser.version < 8.0 || !$.boxModel);
c.oldBrowser = false;
// ----------
c.key = { height : '', width : ''};
if (c.contentsWatch) {
o._createContentsWrapper();
}
c.currentSize = c.newSize = o.getSize();
if (c.resizeWatch) o._resizeWatch();
}
使い方。
$("#elid").exResize(function() {
// 処理
}