google chrome - multiple right click contextmenu angularjs -


enter image description here

i m trying implement dropdown on right click using directive contextmenu in angularjs. directive works fine in firefox doesnt close old menu while opening different 1 when using ' google chrome'. idea how can make changes it. here plunkr

(function(angular) {   var ngcontextmenu = angular.module('directive.contextmenu', []);    ngcontextmenu.directive('cellhighlight', function() {     return {       restrict: 'c',       link: function postlink(scope, ielement, iattrs) {      ielement.find('td')        .mouseover(function() {          $(this).parent('tr').css('opacity', '0.7');        }).mouseout(function() {          $(this).parent('tr').css('opacity', '1.0');        });      }  }; });  ngcontextmenu.directive('context', [  function() {   return {     restrict: 'a',     scope: '@&',     compile: function compile(telement, tattrs, transclude) {       return {         post: function postlink(scope, ielement, iattrs, controller) {           var ul = $('#' + iattrs.context),             last = null;            ul.css({             'display': 'none'           });           $(ielement).bind('contextmenu', function(event) {             event.preventdefault();              ul.css({               position: "fixed",               display: "block",               left: event.clientx + 'px',               top: event.clienty + 'px'             });             last = event.timestamp;           });           //$(ielement).click(function(event) {           //  ul.css({           //    position: "fixed",           //    display: "block",           //    left: event.clientx + 'px',           //    top: event.clienty + 'px'           //  });           //  last = event.timestamp;           //});            $(document).click(function(event) {             var target = $(event.target);             if (!target.is(".popover") && !target.parents().is(".popover")) {               if (last === event.timestamp)                 return;               ul.css({                 'display': 'none'               });             }           });         }       };     }      };      }   ]);    })(window.angular); 

change .click event .mouseup event , work chrome.

 $(document).mouseup(function(event) {             var target = $(event.target);             if (!target.is(".popover") && !target.parents().is(".popover")) {               if (last === event.timestamp)                 return;               ul.css({                 'display': 'none'               });             }           }); 

i faced same problem, , worked me. :)


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Website Login Issue developed in magento -

Can the constants be defined inside a model file of a framework in PHP? -