我将简短,让我们举一些简单的例子。我有这两个功能:
function first() {
alert("Function One");
}
function second() {
alert("Function Two");
}
我想从函数first()
传递到second()
而不用执行此操作:
function first() {
alert("Function One");
second();
}
function second() {
alert("Function Two");
first();
}
因为我会创建一个堆栈溢出(比如first()
在其自身内部调用second()
,然后second()
中的first()
正在调用first()
再次等等,创造一个无用的无限循环
我怎么能简单地通过"从功能到另一个?询问您是否需要更多信息。
谢谢大家。
答案 0 :(得分:2)
你可以简单地在循环中调用这两个函数:
while (true) {
first();
second();
}
但是这样的无限循环在Javascript中并不好用,这会锁定浏览器。目前尚不清楚你真正想做什么。这样可以避免堆栈溢出。
答案 1 :(得分:0)
试试这个
<div class="textbox_content">
<div>
<table width="100%">
<thead id="report_content_headers">
<tr>
<th>{{type}}</th>
<th>Total Unloads</th>
<th ng-show="{{type}} === 'Exception'">Total Cases (re-worked)</th>
<th>Total Pallets (re-worked)</th>
<th>Load Type ( BD/MX )</th>
<th>Load Type ( Runout )</th>
<th>Load Type ( Floor )</th>
<th>{{type}}</th>
</tr>
</thead>
<tbody ng-repeat="metric in results | orderBy:'unloads':true" id="reportRow_{{$index}}">
<tr id="report_content_background" class="metrics">
<td align="center" ng-click="toggleReport($index, metric)">
{{metric.shortName}}
<img src="${pageContext.request.contextPath}/resources/images/adminium/led-icons/chart_bar.png">
</td>
<td align="center">{{ metric.unloads | number:0 }}</td>
<td align="center">{{ metric.cases | number:0 }}</td>
<td align="center">{{ metric.pallets | number:0 }}</td>
<td align="center">{{ metric.bdmx || '0' }}</td>
<td align="center">{{ metric.runout || '0' }}</td>
<td align="center">{{ metric.other || '0' }}</td>
</tr>
<tr class="metric-details" ng-if="report[metric.shortName]">
<td align="center" colspan="7">
<div id="firstChart_{{$index}}" style="width: 500px; height: 400px; float: left;">
</div>
<div id="secondChart_{{$index}}" style="width: 500px; height: 400px; float: left;">
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
&#13;
答案 2 :(得分:0)
如果你想要实现的目标总是一个接一个地调用它,如果它还没有被调用,你可以做类似的事情:
function first(isChained) {
alert("Function One");
if (!isChained) {
second(true);
}
}
function second(isChained) {
alert("Function Two");
if (!isChained) {
first(true);
}
}
然后你仍然可以自己打电话给他们:
first()
并且isChained
参数将默认为未定义,其将评估为false
,从而导致second()
被调用。