如何只进行一次jQuery事件?

时间:2016-08-09 17:06:43

标签: javascript jquery

当我点击“删除”时,调用函数<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <body ng-app="app"> <div ng-controller="TestCtrl"> <input type="text" ng-model="newDate"> <button ng-click="addDate()">Add Date</button> <br/>OrderBy Field: <input type="text" ng-model="orderField"> <table> <thead> <th ng-repeat="(key,val) in arr[0]"> {{key}} </th> </thead> <tbody> <tr ng-repeat="o in arr | orderBy:orderField"> <td ng-repeat="(key,val) in o">{{val | format}}</td> </tr> </tbody> </table> </div> </body>。即使我多次点击DELETE,我怎么能只前置一次?我希望它在我第一次点击时发生。

deleting()
function deleting() {
  $(".checking").prepend("<input type='checkbox' name='idcheckbox'>");
}

2 个答案:

答案 0 :(得分:1)

如果您不想再次使用jQuery,可以创建一个全局&#34;标记&#34;变量,像这样:

   var flag = false;
   function deleting() {
      if(flag)
         return false;

      $(".checking").prepend("<input type='checkbox' name='idcheckbox'>");
      flag = true;
      return true;
  }

但不建议这样做,因为你总是没有必要的听众。

答案 1 :(得分:0)

您可以使用jQuery one来:将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。

您可以动态附加事件而不是内联:

    $(function () {
        $('a').one('click', function(e) {
            e.preventDefault();
            $(".checking").prepend("<input type='checkbox' name='idcheckbox'>");
        })
    });

你的HTML可能就像:

<form>
 <a href="">DELETE</a>
</form>