google chrome - multiple right click contextmenu angularjs -

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
Post a Comment