jQuery的off方法是用來解除事件綁定的函數(shù)。通過off方法可以從元素上移除指定的事件處理函數(shù),以達到停止監(jiān)聽該事件的效果。而在jQuery中,還有一個類似于off方法的事件處理器,叫做eventsMap。
eventsMap與off方法非常相似,不同的是,eventsMap可以同時解除多個事件處理函數(shù)的綁定。事件處理函數(shù)可以以對象字面量的形式傳遞給該方法。具體來說,就是使用eventsMap可一次性解除多個事件處理函數(shù)的綁定,但是off方法只能一次解除一個。
// off方法解除click事件 $('body').off('click', myFunction); // eventsMap解除多個事件 $('body').off({ click: myFunction, mouseover: myFunction2, mouseout: myFunction3 });
eventsMap和off方法在實現(xiàn)多個解除事件處理函數(shù)的綁定之外,它們執(zhí)行的操作和語法非常相似。因此,基于同樣的原因,一旦使用了eventsMap,通常會在代碼中使用eventsMap來實現(xiàn)解除事件處理函數(shù)的所有綁定。因為它更加靈活和方便,可以大大節(jié)省代碼量和時間成本。所以,對于需要解除多個事件處理函數(shù)綁定的情況,建議大家使用eventsMap。