2009-06-24 10 views
1

私自身のイベント - OnPositionChangeを作成したいと思います。イベントの実装はもちろん問題ではありません。ポイントは、上または左のスタイルが変更されたときにトリガーする方法です。 $ .css()関数のプロトタイプを上書きするか、より良い解決策がありますか?カスタムjQueryイベント

答えて

0

私は切り抜いたもの、見つかっをしようとしていました

大量のオブジェクトをチェックすると、setIntervalがコードを大きく遅くすることがあります。

1

私は理想的な方法についてはよく分からないが、あなたは常にそれらのCSSの値が変更されているかどうかを追跡間隔を設定し、イベントをトリガすることができます:

//Usage same as bind 
$('#element').PositionChange(function(){...}); 
$.fn.PositionChange = function(data, fn) { 
    //Bind given function and args to event to trigger later 
    var self = $(this); 
    self.bind('PositionChange',data,fn); 
    var top = self.offset().top; 
    var left = self.offset().left; 
    setInterval(function(){ 
    if(self.offset().top != top || self.offset().left != left){ 
     self.trigger('PositionChange'); 
     } 
    top = self.offset().top; 
    left = self.offset().left; 
    },1000); 
    //You might use a different interval than 1000 ms 
    } 
関連する問題