diff --git a/src/components/list/list.js b/src/components/list/list.js index d018654c7cb..6a667cf4d43 100644 --- a/src/components/list/list.js +++ b/src/components/list/list.js @@ -64,7 +64,7 @@ function mdListDirective($mdTheming) { * * */ -function mdListItemDirective($mdAria, $mdConstant, $timeout) { +function mdListItemDirective($mdAria, $mdConstant, $mdUtil, $timeout) { var proxiedTypes = ['md-checkbox', 'md-switch']; return { restrict: 'E', @@ -227,7 +227,8 @@ function mdListItemDirective($mdAria, $mdConstant, $timeout) { if (proxies.length && firstChild) { $element.children().eq(0).on('click', function(e) { - if (firstChild.contains(e.target)) { + var parentButton = $mdUtil.getClosest(e.target, 'BUTTON'); + if (!parentButton && firstChild.contains(e.target)) { angular.forEach(proxies, function(proxy) { if (e.target !== proxy && !proxy.contains(e.target)) { angular.element(proxy).triggerHandler('click');