瀏覽代碼

RPM manager - BP/WT popover delayed invoke

Vijayakrishnan 2 年之前
父節點
當前提交
1a2ef147dc
共有 1 個文件被更改,包括 41 次插入25 次删除
  1. 41 25
      resources/views/app/practice-management/rpm-manager/index.blade.php

+ 41 - 25
resources/views/app/practice-management/rpm-manager/index.blade.php

@@ -640,46 +640,54 @@
                 initMoes();
             }
 
-            let popoverVisible = false;
+            let popoverVisible = false,
+                popoverShowTimer = false;
 
             function init() {
                 let parent = $('#practice-rpm-manager');
 
                 parent
-                    .off('click', '.btn-bp-popup')
-                    .on('click', '.btn-bp-popup', function() {
-                        showStagPopup('rpm-manager-bp-popup');
-                        prepareMeasurementsPopup($(this).attr('data-uid'), 'bp');
-                        reInitMoes();
-                        return false;
-                    });
-
-                parent
-                    .off('click', '.btn-weight-popup')
-                    .on('click', '.btn-weight-popup', function() {
-                        showStagPopup('rpm-manager-weight-popup');
-                        prepareMeasurementsPopup($(this).attr('data-uid'), 'weight');
-                        reInitMoes();
+                    .off('mouseenter', '.rpm-manager-weight-popover-trigger')
+                    .on('mouseenter', '.rpm-manager-weight-popover-trigger', function() {
+                        if(popoverVisible) return false;
+                        if(popoverShowTimer) {
+                            clearTimeout(popoverShowTimer);
+                            popoverShowTimer = false;
+                        }
+                        popoverShowTimer = setTimeout(() => {
+                            $('.rpm-manager-popover').removeClass('show');
+                            $('#rpm-manager-weight-popover-' + $(this).attr('data-uid')).addClass('show');
+                            prepareMeasurementsPopover($(this).attr('data-uid'), 'weight');
+                            popoverVisible = true;
+                        }, 500);
                         return false;
                     });
 
                 parent
-                    .off('mouseover', '.rpm-manager-weight-popover-trigger')
-                    .on('mouseover', '.rpm-manager-weight-popover-trigger', function() {
+                    .off('mouseenter', '.rpm-manager-bp-popover-trigger')
+                    .on('mouseenter', '.rpm-manager-bp-popover-trigger', function() {
                         if(popoverVisible) return false;
-                        $('#rpm-manager-weight-popover-' + $(this).attr('data-uid')).addClass('show');
-                        prepareMeasurementsPopover($(this).attr('data-uid'), 'weight');
-                        popoverVisible = true;
+                        if(popoverShowTimer) {
+                            clearTimeout(popoverShowTimer);
+                            popoverShowTimer = false;
+                        }
+                        popoverShowTimer = setTimeout(() => {
+                            $('.rpm-manager-popover').removeClass('show');
+                            $('#rpm-manager-bp-popover-' + $(this).attr('data-uid')).addClass('show');
+                            prepareMeasurementsPopover($(this).attr('data-uid'), 'bp');
+                            popoverVisible = true;
+                        }, 500);
                         return false;
                     });
 
                 parent
-                    .off('mouseover', '.rpm-manager-bp-popover-trigger')
-                    .on('mouseover', '.rpm-manager-bp-popover-trigger', function() {
+                    .off('mouseleave', '.rpm-manager-popover-trigger')
+                    .on('mouseleave', '.rpm-manager-popover-trigger', function() {
                         if(popoverVisible) return false;
-                        $('#rpm-manager-bp-popover-' + $(this).attr('data-uid')).addClass('show');
-                        prepareMeasurementsPopover($(this).attr('data-uid'), 'bp');
-                        popoverVisible = true;
+                        if(popoverShowTimer) {
+                            clearTimeout(popoverShowTimer);
+                            popoverShowTimer = false;
+                        }
                         return false;
                     });
 
@@ -689,6 +697,10 @@
                         if(!($(_e.target).closest('.rpm-manager-popover').length) && $('.rpm-manager-popover.show').length) {
                             $('.rpm-manager-popover').removeClass('show');
                             popoverVisible = false;
+                            if(popoverShowTimer) {
+                                clearTimeout(popoverShowTimer);
+                                popoverShowTimer = false;
+                            }
                             return false;
                         }
                     });
@@ -699,6 +711,10 @@
                         if(_e.which === 27) {
                             $('.rpm-manager-popover').removeClass('show');
                             popoverVisible = false;
+                            if(popoverShowTimer) {
+                                clearTimeout(popoverShowTimer);
+                                popoverShowTimer = false;
+                            }
                             return false;
                         }
                     });