2017-03-08 134 views
1

您好,我试图限制导航&现有应用程序中的选项卡控件,同时在保存之前更改数据。该应用程序已在AngularJS中开发。所以我已经返回了全局级别的JQuery代码,以便使用这些类进行限制。停止使用JQuery的Angular Click事件

这是我的代码:

$(document).ready(function() { 
    $(".mandatory-data").change(function (e) { 
     if (e.originalEvent) { 
      $(this).addClass('mandatory-data-entered'); 
     } else { 
      $(this).removeClass('mandatory-data-entered'); 
     } 
    }); 

    $(".check-mandatory-data").click(function (event) {   
     if ($(".mandatory-data-entered").length > 0) { 
      alert("Not Allow"); 
      event.preventDefault(); 
      event.stopPropagation();   
      return false; 
     } 
    }); 
}); 

现在我的功能工作正常。但问题是角功能和href不会停止后,我的改变消息其他功能的工作。

我的代码是

<a href="#" class="check-mandatory-data" ng-click="dataClickEvent();">Data</a> 

这里既有事件正在检查的强制性数据事件和dataClickEvent()。如何使用条件$(“。check-mandatory-data”)。click()事件来限制dataClickEvent()。

在此先感谢。

+0

为什么不通过传递事件对象'$ event'在'ng-click'中做到这一点。 – Jai

+0

如果你想限制然后删除'ng-click =“dataClickEvent();”'? –

+0

@Jai我现有的应用程序有近85个屏幕,因此它包含更多的控制器和更多的事件。是不是可以改变所有的地方,这就是我正在写的全球水平的代码 – Dinesh

回答

0

不太确定这是否可行,但您可以尝试使用.mousedown()而不是.click()。

Inside .mousedown()你可以$(this).removeAttr('ng-click')。也许存储它的价值,并重新将它应用于.mouseup()。

+0

雅没有工作我已经尝试在focusin事件虽然加载时间它自我ng点击被分配事件到特定的控制 – Dinesh

+0

removeAttr工作后,attr增加了ng点击,但它没有击中功能 – Dinesh