Javascript 页面加载时触发事件单击

Javascript 页面加载时触发事件单击,javascript,angularjs,Javascript,Angularjs,我不知道为什么我不能在页面加载时触发控制器上的点击事件。我想要的是复选框按字面意思 <!DOCTYPE html> <html > <head> <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> <script src="https://aj

我不知道为什么我不能在页面加载时触发控制器上的点击事件。我想要的是复选框按字面意思

<!DOCTYPE html>
<html >

  <head>
    <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
  </head>

  <body ng-app="ngToggle">
    <div ng-controller="AppCtrl">
        <input type="checkbox" ng-model="dean" ng-click="btnChange($event, values, 1)" id="one" name="one" class="here" >
        <input type="checkbox"  ng-model="armada" ng-click="btnChange($event, values, 2)" id="two" name="one" class="here" >
        <!--<p ng-repeat="btn in btns">-->
        <!--  <input type="checkbox" ng-model="btn.bool" class="here" > {{ btn.value }}-->
        <!--</p>-->
        {{btn  }}
        {{values  }}
    </div>
    <script type="text/javascript">
        angular.module('ngToggle', [])
            .controller('AppCtrl',['$scope', function($scope){
            $scope.btns = [{}, {}, {}];
            $scope.values = [];
            $scope.btnChange = function(event, model, val){
              _this = angular.element(event.target);
              x = _this.prop("checked");
              if(x){
                model.push(val);
              }else{
                index = model.indexOf(val);
                model.splice(index, 1);
              }
            };
            angular.element("#one").triggerHandler("click");
        }]);
    </script>
  </body>
</html>

{{btn}}
{{values}}
角度。模块('ngToggle',[])
.controller('AppCtrl',['$scope',函数($scope){
$scope.btns=[{},{},{}];
$scope.values=[];
$scope.btnChange=函数(事件、模型、val){
_这=角度元素(事件目标);
x=_this.prop(“选中”);
if(x){
模型推送(val);
}否则{
索引=模型索引(val);
模型拼接(索引1);
}
};
angular.element(“#one”).triggerHandler(“单击”);
}]);

下面是提示:

您只需要添加一个小的超时来触发单击

$timeout(function() {
          angular.element('#one').click();
        }, 100);
我已经更新了你的plunker链接请查看

或者你可以

angular.element(document).ready(function() {
          angular.element("#one").trigger("click"); 
        }); 

您只需要添加一个小的超时来触发单击

$timeout(function() {
          angular.element('#one').click();
        }, 100);
我已经更新了你的plunker链接请查看

或者你可以

angular.element(document).ready(function() {
          angular.element("#one").trigger("click"); 
        }); 

你可以像这样把它放在控制器上

 angular.element(document).ready(function() {
          angular.element("#one").trigger("click"); 

        }); 

这是

您可以像这样将其放置在控制器上

 angular.element(document).ready(function() {
          angular.element("#one").trigger("click"); 

        }); 

这是我看到您在页面上使用了jQuery的

。因此,您可以简单地执行以下操作:

 $(function(){
     angular.element("#one").trigger("click"); 
 });
完整的jQuery解决方案是:

 $(function(){
    $("#one").click(); 
 });
一个完整的角度解应该是(如其他提到的):


当文档未完全准备好/呈现时,您将触发代码单击,因此您需要等待整个文档(或者在本例中,您的复选框)加载完毕,然后才能对元素执行操作。

我看到您在页面上使用了jQuery。因此,您可以简单地执行以下操作:

 $(function(){
     angular.element("#one").trigger("click"); 
 });
完整的jQuery解决方案是:

 $(function(){
    $("#one").click(); 
 });
一个完整的角度解应该是(如其他提到的):


当文档未完全准备好/呈现时,您将触发代码单击,因此您需要等待整个文档(或在本例中,您的复选框)加载完毕,然后才能对元素执行操作。

非常感谢!我也可以使用它,因为它更简单,是Jquery和AngularJS的混合体,非常感谢!我也可以使用它,因为它更简单,是Jquery和AngularJS的混合体