我試圖在一個時間範圍內發生特定次數的dom事件(keyup)時收到通知。我看到有一個油門在一段時間內拋出事件,我想要數它們。例如,如果在500毫秒內文本框的密鑰事件發生10次,我只想通知它。是否有可能在一個時間範圍內使用Rx for JavaScript觀察數字特定的dom事件
0
A
回答
0
可以通過保存點擊的時間戳和10次點擊前與當前時間戳比較點擊的時間戳實現這一目標:
(我假設你在這裏使用jQuery)
var timestamps = [];
$('.watched').click(function() {
var now = (new Date).getTime();
// add the current timestamp in front of the other timestamps
timestamps.unshift(now);
if (timestamps.length > 10 && (now - timestamps[10]) < 500) {
// do whatever you really wanted to do
clickedTenTimes()
}
// clean unneeded timestamps
while (timestamps.length > 10) timestamps.pop()
});
0
您可以使用groupByUntil函數在500毫秒內觸發的關鍵事件創建可觀察組。然後只計算每個可觀察組中的事件。如果一個組中有十個或更多的事件,那麼做一些事情。
var keyups = $('#input').keyupAsObservable()
.groupByUntil(
function(x) { return x.currentTarget.id; },
function(x) { return x; },
function(x) { return Rx.Observable.timer(500); }
);
keyups.subscribe(function(obs) {
obs.count()
.filter(function(count) { return count >= 10; })
.subscribe(doSomething)
});
相關問題
- 1. 如何爲一些特定的非DOM事件創建Rx可觀察性
- 2. 選擇在特定時間範圍內觀察datetime64 [ns]類型
- 3. 是一個特定的時間內觀察獨特的框架
- 4. 是否有可能獲得永久重複的RX可觀察
- 5. 在一個數組的可觀察範圍內組合Observable's
- 6. 觀察可觀察範圍內的所有屬性更改
- 7. 一個可觀察事件的多個可觀察事件
- 8. 敲除 - 在特定範圍內保持可觀察值
- 9. 是否有可能使用JavaScript觀察302重定向?
- 10. 如何檢查某個事件是否在特定時間範圍內發生?
- 11. 確定一個時間表是否在時間範圍內 - AngularJS
- 12. PHP檢查時間範圍是否在一個時間範圍內
- 13. 查找一組可能的時間是否落在另一個範圍內。
- 14. 如何使用jQuery/javascript檢查當前時間是否在特定範圍內?
- 15. 是否有可能用可觀察數據綁定保證金?
- 16. 檢查時間範圍是否在另一個時間範圍
- 17. 檢查一個整數是否在data.table的特定範圍內?
- 18. Magento事件觀察者範圍
- 19. 是否有RX擴展來創建可觀察到的從另一個觀察到的,只有捕獲異常
- 20. 確定當前時間是否在一組時間範圍內
- 21. DOM突變觀察者是否比DOM突變事件慢?
- 22. KnockoutJs - 可觀察綁定和範圍
- 23. 在給定的時間範圍內使用SQL查找事件
- 24. 關係部門,在一定的時間範圍內的事件
- 25. 是否有可能使用KVO觀察NSDictionary的計數?
- 26. 觀察特定類型的事件
- 27. VBscript在一定的時間範圍內檢查文件是否存在(具有使用通配符的能力)
- 28. 是否可以將數字限制在一定範圍內
- 29. 是否有一個角指令,可以限制範圍在DOM
- 30. 是否有可能只處理特定郵件的郵件觀察者?
謝謝,這可以按要求工作。但是,它可以通過事件處理程序輕鬆完成。如果可能的話,我想用Rx來處理所有的「時間戳」。 –
直到現在我還沒有使用Rx,但是我會看看。 – Tharabas