防止onclick事件多次呼叫
//程式碼3
submitButton.setOnClickListener(new NoDoubleClickListener() {
@Override
public void onNoDoubleClick(View v) {
submitOrder();
}
});
原理:
很簡單,見程式碼……
就是用onNoDoubleClick代替onClick處理具體的操作,在onClick方法中加一個判斷:在接收到點選事件之後,先判斷一下時間,如果距離上次處理操作不足MIN_CLICK_DELAY_TIME,就忽視——即能防止誤操作的連續點選導致重複事件。
MIN_CLICK_DELAY_TIME可調。
優勢
好處是不用改變原有程式碼的邏輯,就只需要兩個替換:NoDoubleClickListener代替OnClickListener,onNoDoubleClick代替onClick。 程式碼的結構等都不需要做改變(**對比上面的程式碼0跟程式碼**3),不需要關心處理更改button的狀態這些額外判斷邏輯,只需要關注業務邏輯即可,簡潔優雅~
相關推薦
防止onclick事件多次呼叫
//程式碼3 submitButton.setOnClickListener(new NoDoubleClickListener() { @Override public void onNoDoubleClick(View v)
jquery on()事件多次呼叫解決辦法
今天閒的沒事 寫了個時時監控input框的元件,在用on() 方法進行繫結change事件時發現出現多次呼叫的情況。 現在說說自己的解決方法,和大家分享一下: var validators = function() { $(document).on("cha
防止使用者連續擊鍵,多次呼叫ajax時,即防抖的封裝
在文字框中常常有這樣的需求,鍵入值時,實時呼叫相應的介面,但是每次觸發keydown都觸發,會嚴重消耗網頁的效能 基於此,可以進行封裝,設定鍵入值得間隔在一秒之內只調用一次,程式碼如下 呼叫如下 $("input").on("keydown",debounce(fu
iOS 如何防止多次呼叫didUpdateLocations方法
原貼 http://www.aichengxu.com/diannao/72340.htm1:判斷didUpdateLocations這個方法呼叫幾次 _currLocationl = [locations lastObject]; NSString *loc=[NSSt
防止快速點選多次調節音量按鈕多次呼叫網路介面
private Runnable reqeustSetVoice; public void setDeviceVoice(final int count, BindBean bean, ImageButton deviceVoice) {
C#中WebBrowser.DocumentCompleted事件多次調用問題解決方法
post lin ont display err 框架 center 一個 blank 關於DocumentCompleted事件,MSDN給出的解釋是在文檔加載完畢後執行,但是在我的程序中DocumentCompleted卻被多次調用,查了一下資料,大概出現了以下幾種情
JQ事件委托導致點擊事件多次執行問題
func 中一 頁面切換 後來 ech cli 程序 處理程序 clas 起因:最近寫網頁其中一個模塊使用tab切換~每一個tab裏都有點擊按鈕提交事件,剛開始點擊提交只執行一次,但是只要我tab切換頁面又切換回來該頁面,再點擊該按鈕,我切換了多少次頁面,代碼提交也會提交很
jQuery事件多次繫結與解綁
jQuery事件繫結很常見,相信大家經常會用到click、focus、blur等事件,但是如果對控制元件的某個事件繫結多個方法會是怎樣的結果呢,覆蓋、累加、或其他效果?今天我就來驗證一下這個疑問並說說如何解綁。 一、jQuery事件多次繫結 <head> <sc
在vue中多次呼叫同一個定義全域性變數的例項
在Vue開發中,有很多場景會用到多次重複的API請求。 例如: 前端精品教程:百度網盤下載 ? 1
防止表單多次提交的方法
作者:莎士比亞的人生 來源:CSDN 原文:https://blog.csdn.net/qq_34368762/article/details/79130198 表單重複提交是在多使用者Web應用中最常見、帶來很多麻煩的一個問題。有很多的應用場景都會遇到重複提交問題,比如:
用面向物件重寫thread 實現多次呼叫一個執行緒
思路: 利用thread類中,run方法在子執行緒中呼叫,其他方法在主執行緒呼叫,所以將生產者寫入主執行緒,將消費者寫入run函式中在子執行緒中執行,完成生產者消費者模型 注意: 1. 要在 init 函式中例項化一個Queue佇列作為生產者消費者中介 2. 要在 init 函式中把d
微信小程式中動畫多次呼叫的問題
function hideMsg(that) { var animation = wx.createAnimation({ duration: 1500, timingFunction: 'linear', }) that.animation = animation
【記坑】Iterator遍歷時,多次呼叫next(),二次遍歷需要從Collection重新獲取迭代器
【記坑】Iterator遍歷時,多次呼叫next(),二次遍歷需要從Collection重新獲取迭代器 2018年02月10日 11:02:46 閱讀數:681 業務需求,從一份excel表中取到X軸(專案)和Y軸(平臺)的資料,和資料庫中的資料進行比較,如果匹配不上,則把所有匹配不上的
多次呼叫同一非同步方法體會出現使用相同的屬性值問題
《一》執行同一個方法體,裡面有非同步的邏輯程式碼,如果這個非同步請求還沒有執行完畢時,我們又對它進行了第二次呼叫,它會使用最後一次的執行操作。例如: var test = { init:function(){ this.temp = "temp" +
驗證:多次呼叫WSAStartup會發生什麼?
有時候,總想驗證一些奇怪的想法,乾脆就寫下來,以備後查。 想法:多次呼叫WSAStartup會發生什麼? void TestCase_WSAStartupAndCleanup() { WORD versionRequested1_1, versionRequested2
JQuery的on事件多次觸發問題
JQuery的on事件多次觸發問題 問題描述: 程式碼如下: <!-- 結構 --> <div class="content"> <div id='result'></div> <div id="mask
多次呼叫Promise的then會返回什麼?
//做飯 function cook(){ console.log('開始做飯。'); var p = new Promise(function(resolve, reject){ //做一些非同步操作 setTimeout(function(){
fragment複用至EventBus多次呼叫
專案是mvp模式開發的,中間有一個tablayout,每個標籤都是fragment複用,通過model請求不同資料展示,發現一個問題,多次滑動之後,每個fragment最後都顯示同一個內容,看起來好像fragment複用有問題,每次取得是同一個fragment。
前端防止按鈕被多次點選
前端的部分邏輯有時候控制前端的顯示,比如記錄收藏數目等等。有時候多次重複點選會造成前端顯示的bug。所以需要有部分邏輯判斷去篩除掉重複多次的點選。 實現部分程式碼如下,主要是通過setTimeout去加以判斷,即無論點選幾次,間隔一定時間才會去觸發一次事件,從而只產生一次的
MUI on繫結事件多次執行問題
1.可能是同時引用mui.js與mui.min.js; 2.可能多次註冊了on事件,解決方法如下: //繫結前先登出事件 mui("li").off("tap"); //繫結事件 mui("li")