亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

腳本慕斯事件觸發很晚

腳本慕斯事件觸發很晚

九州編程 2022-09-23 21:53:20
我有一個jquery排序插件,它工作得很好,但是如果我做一些拖動操作,mouseup事件開始變得非常慢。觸發事件時大約需要 1 秒鐘。如果我轉儲鼠標移動事件的結束,它會立即停止,但鼠標啟動事件在第二個之后開始。我為代碼中的每個方法添加了控制臺.log(),但在拖動停止和鼠標上移動之間沒有調用??赡苁鞘裁磫栴}?如何在瀏覽器中調試可能的并行進程?代碼如下所示:    ....        state.doc            .on( 'mousemove', dragging )            .on( 'mouseup', endDrag );    }    /**     * @desc Start dragging     * @param e event obj.     */    function dragging( e )    {        ...        console.log('dragging end');    }    function endDrag( e )    {        var cEl = state.cEl,            hintNode = $( '#sortableListsHint', state.rootEl.el ),            hintStyle = hint[0].style,            targetEl = null, // hintNode/placeholderNode            isHintTarget = false, // if cEl will be placed to the hintNode            hintWrapperNode = $( '#sortableListsHintWrapper' );        if ( hintStyle.display == 'block' && hintNode.length && state.isAllowed )        {            targetEl = hintNode;            isHintTarget = true;        }        else        {            targetEl = state.placeholderNode;            isHintTarget = false;        }        offset = targetEl.offset();        cEl.el.animate( { left: offset.left - state.cEl.mL, top: offset.top - state.cEl.mT }, 250,            function()  // complete callback            {                tidyCurrEl( cEl );                targetEl.after( cEl.el[0] );                targetEl[0].style.display = 'none';                hintStyle.display = 'none';                // This has to be document node, not hint as a part of documentFragment.  在這里 https://camo.publicvm.com/ 我為代碼中的所有方法制作了一個轉儲的示例??纯唇Y束延遲的德拉姆格日志。另外,我在Opera瀏覽器中檢查了這個問題,它沒有問題。編輯:我認為問題在于動畫調用中閉包中的局部變量。var 占位符Node, var 占位符家長和 var 占位符家長L.當我把它重寫為全局狀態對象時,問題就消失了。
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

經典用戶單擊觸發器和 。兩者之間的時間通常約為50ms。在這么短的時間內,瀏覽器可能會由于鼠標按下和事件冒泡和傳播觸發的進程而繁忙,特別是如果您在DOM樹中綁定了太多的處理程序,例如或。避免這種情況。mousedownmouseupdocument"html, body"

此外,可能最終從未注冊過。如果某些進程花費了太多時間,或者您使用鼠標的速度太快,則在觸發目標元素時可能不會超過目標元素,因此永遠不會觸發該事件。mouseupmouseup


查看完整回答
反對 回復 2022-09-23
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

我認為問題在于動畫調用中閉包中的局部變量。var 占位符Node, var 占位符家長和 var 占位符家長L.當我將其重寫為全局狀態對象時,問題似乎不太明顯。但我不確定這是否是問題的根源。


查看完整回答
反對 回復 2022-09-23
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

使其與承諾或異步/等待的使用同步。下面的鏈接包含有關異步的文檔。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function


查看完整回答
反對 回復 2022-09-23
  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號