第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有什么方法可以恢復(fù) Vanilla JavaScript 中的 preventDefault

有什么方法可以恢復(fù) Vanilla JavaScript 中的 preventDefault

慕田峪9158850 2021-11-12 10:51:43
我正在嘗試創(chuàng)建一個水平滾動容器。在確切的情況下,我需要恢復(fù) e.preventDefault(); 從一個點擊。我嘗試了很多選項,在 else 語句中更改 'window.location.href' 似乎是一個不錯的選擇。但我不知道如何從點擊的鏈接中獲取 href。任何想法都可以幫助實現(xiàn)我的目標。:)slider.addEventListener('mouseup', () => {    isDown = false;    // Disable click event (for ever unfortunately)    if(moved === true) {        this.addEventListener('click', (e) => {            e.preventDefault();        });    } else {        // trying to reset click function    }
查看完整描述

2 回答

?
浮云間

TA貢獻1829條經(jīng)驗 獲得超4個贊

您可以通過注冊與您的和事件偵聽器click共享moved變量的事件偵聽器,有條件地防止在滑塊上觸發(fā)單擊事件。mousedownmousemove


該{ passive: true }選項表示偵聽器不調(diào)用event.preventDefault(),并且節(jié)省了大量 CPU 時間,特別是對于mousemove每秒可以觸發(fā)多次的事件。


該true參數(shù)指示在事件開始從目標元素冒泡之前應(yīng)調(diào)用事件偵聽器。這允許它甚至可以防止傳播到已經(jīng)添加到同一元素上的偵聽器,只要它們也沒有設(shè)置useCapture為true.


const slider = document.querySelector('input[type="range"]');


// prevent this if mousemove occurred between mousedown and mouseup

slider.addEventListener('click', () => {

  console.log('click event fired on slider');

});


// fires just before click event

slider.addEventListener('mouseup', () => {

  console.log('mouseup event fired on slider');

});


let moved = false;


// reset for each potential click

slider.addEventListener('mousedown', () => {

  moved = false;

});


// indicate cancellation should occur for click

slider.addEventListener('mousemove', () => {

  moved = true;

}, { passive: true });


// prevents click event if mousemove occurred between mousedown and mouseup

slider.addEventListener('click', event => {

  if (moved) {

    event.preventDefault();

    event.stopImmediatePropagation();

  }

}, true);

<input type="range" />


查看完整回答
反對 回復(fù) 2021-11-12
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

您應(yīng)該刪除包含event.preventDefault();.


為此,您必須將函數(shù)引用保存到一個變量中,如下所示:


const preventClickHandler = (e) => e.preventDefault;

slider.addEventListener('mouseup', () => {

    isDown = false;


    // Disable click event (for ever unfortunately)

    if(moved === true) {

        this.addEventListener('click', preventClickHandler);

    } else {

        this.removeEventListener('click', preventClickHandler);

    }

})


查看完整回答
反對 回復(fù) 2021-11-12
  • 2 回答
  • 0 關(guān)注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號