1
我想創建自己的事件 - OnPositionChange。事件的實施當然不是問題。關鍵是,如何在頂部或左側樣式發生變化時觸發它?我應該覆蓋$ .css()函數的原型,還是有更好的解決方案?自定義jQuery事件
我想創建自己的事件 - OnPositionChange。事件的實施當然不是問題。關鍵是,如何在頂部或左側樣式發生變化時觸發它?我應該覆蓋$ .css()函數的原型,還是有更好的解決方案?自定義jQuery事件
我是想指出錯誤的事情,發現最好的解決方案是這樣的:
$.prototype.css2=$.prototype.css; $.prototype.css=function(key, value) { console.log(key); return this.css2(key,value); }
有大量的對象來檢查setInterval會減慢我的代碼太多。
我不知道一個理想的方法,但你總是可以設置跟蹤的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
}