【发布时间】:2016-05-03 21:45:17
【问题描述】:
所以我做了这个代码:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<h1> Some Traffic Lights</h1>
<div ng-app="myApp" ng-controller="myCtrl">
<img id="trafficLight" src="TLgre.png" />
<script>
var app = angular.module('myApp', []);
//*****Declaring Variables*****//
var lightSrcs = ['TLgre.png', 'TLyel.png', 'TLred.png'];
var cycleNumber = 0;
var Order = 0;
//*****Number Cycling Function*****//
function cycle() {
if (Order === 0) {
if (cycleNumber == 3) {
cycleNumber -= 1;
Order = 1;
} else {
cycleNumber += 1;
}
} else if (Order === 1) {
if (cycleNumber <= 0) {
cycleNumber += 1;
Order = 0;
} else {
cycleNumber -= 1;
}
}
return cycleNumber;
}
</script>
<button type="button" onclick="document.getElementById('trafficLight').src = lightSrcs[cycle()];">
Click to cycle lights</button>
</div>
</body>
</html>
而且我不知道为什么它不起作用。我确实有两个猜测,一个是我无法在 onclick 事件中运行 JavaScript,或者它不允许我使用来自 this 的 script 标签中的函数。我的另一个猜测是 src 属性不能作为变量给出,这听起来很奇怪,这可能是我感到困惑的原因。如果有人能告诉我我做错了什么,那就太好了,我愿意接受任何关于如何改进它的建议,(我也知道一点 AngularJS),只有一件事,它必须有三个图像我想要一个数组。我也不知道为什么,但我的老师说他们必须这样做。
【问题讨论】:
-
你可以使用更多的角度逻辑,设置一个控制器然后使用角度
ng-src指令来实现这一点。现在你正在混合和匹配普通的 js dom 选择和角度。你可以很容易地用纯角度做这种事情,并且你已经设置了应用程序。
标签: javascript html angularjs variables src