ここではHTMLコードですが、clearfixクラスをクリックすると関数が呼び出され、同じ関数が4回実行されます。同じ関数をJavaScriptで何度も呼び出すのを止める方法は?
<div class="clearfix">
<ul id="dashboard-tab" class="nav nav-tabs pull-left">
<li class="active" isdashboardloaded="true">
<a data-toggle="tab" href="#dashboard_5" aria-expanded="true">DashLoadingLineChart</a>
</li>
<li class="" isdashboardloaded="true">
<a data-toggle="tab" href="#dashboard_6" aria-expanded="false">Zoom</a>
</li>
</ul>
</div>
JS機能
$(document).on('click','.clearfix',function(){
var dashId=$('.dashboardTabContent.active').attr('id');
var dash_ids = bu.angular.pageScope.dashboardCollection.collection;
var dashBoardUrl=event.target.href;
$.each(dashObj.widgetObj,function(widgetId,widgetObj){
clearWidget(widgetId,widgetObj.mode);
var widget_refresh_interval = widgetObj.refresh_interval;
//widgetInterval[widgetId] = 0;
clearInterval(widgetInterval[widgetId]);
bu.angular.pageScope.$digest();
widgetWiseReload(widgetId,dashId)
getWidgetData(widgetId,dashId,widgetObj,data_sources);
});
});
私は一度だけ、この関数を実行する必要があるが、それは2回以上実行されています。
だから、ループにsometingを入れて、ループが実際に実行される理由が不思議です。 – baao
['$ 1one()'](http://api.jquery.com/one/)を使用してください。これはハンドラをアタッチし、イベントタイプごとに最大で1回実行されます。 – Pugazh
@baao、ループを完了した後、再び同じ機能に戻ります。 – Illusion