ng-click on firing on mobile or tablet devices

前端 未结 3 969
我在风中等你
我在风中等你 2020-12-10 15:33

On page load i have a controller that calls a service and then binds the returned data to some $scope.objects:

app.controller(\"MainController\", function($s         


        
相关标签:
3条回答
  • 2020-12-10 15:39

    Try to add the ngTouch. From documentation:

    A more powerful replacement for the default ngClick designed to be used on touchscreen devices. Most mobile browsers wait about 300ms after a tap-and-release before sending the click event. This version handles them immediately, and then prevents the following click event from propagating.

    Requires the ngTouch module to be installed.

    0 讨论(0)
  • 2020-12-10 15:47

    Had a similar issue where the ng-click inside of a ng-repeat would not trigger. I fixed this by adding $event.stopPropagation()

    Ex:

    <li ng-repeat="option in $scope.options">
       <span><a ng-click="trigger(); $event.stopPropagation()"></a></span>
    </li>
    
    0 讨论(0)
  • 2020-12-10 15:59

    I had the same problem.

    I tried adding the ngTouch library and dependency, but was still having a problem.

    My static <div> elements which contained an ng-click worked fine, but the div's which were created dynamically (in an ng-repeat on the same webpage) which contained an ng-click didn't work. Tapping on them just didn't do anything.

    This happened on my iPhone 6, my iPad and in Google Chrome when I asked to view my webpage on any of the device types. When I viewed the same webpage in IE or regular Chrome, all of the ng-clicks worked fine.

    The solution was to use the ngMobileClick directive described here and changing my ng-click's to ng-mobile-click.

    After doing that, my dynamically created click events did get triggered normally when I tapped on them on a device.

    Very odd.

    0 讨论(0)
提交回复
热议问题