我正在使用AngularJS创建一个简单的搜索功能,允许您从中国十二生肖中输入动物的名字,并获得兼容动物的图像。我想扩展这个应用程序,以便点击其中一个动态创建的元素将显示相关的动物列表。
我的第一个想法是在所有图像元素上创建一个click事件监听器,但这不适用于angular。我真的很感激任何指导或帮助。
HTML
<div>
What Animal Are You?<input type="text" ng-model="animal"><input type="submit" ng-click="submit(animal)">
</div>
JS:
$scope.submit = function(submitAnimal){
$scope.disappear=false
$('.your-zodiac').empty()
$('.mortalEnemy').empty()
$('.friendsForever').empty()
$http.get('zodiac.json')
.then(function(response) {
var animalsData = response.data.animals
function loopAnimals(arrayOfAnimals,element){
for (var index in arrayOfAnimals){
var animal = arrayOfAnimals[index]
for (var loopAnimal in animalsData){
if(animalsData[loopAnimal].animal==animal){
var picture = animalsData[loopAnimal].picture
$(element).prepend("<img src='"+ picture +"' alt='"+animal+"'/>")
break
}
}
}
}
for (var loopAnimal in animalsData){
if (animalsData[loopAnimal].animal==submitAnimal){ //compatibility test
var picture = animalsData[loopAnimal].picture
$('.your-zodiac').prepend("<img src='"+ picture +"' alt='"+submitAnimal+"'/>")
var enemies = animalsData[loopAnimal].hate //hate array
var friends = animalsData[loopAnimal].love
loopAnimals(enemies,'.mortalEnemy')
loopAnimals(friends,'.friendsForever')
break;
}
}
});
答案 0 :(得分:0)
我最终在动态图像的事件监听器上使用了jQuery:
$('#zodiac').on("click",'img',function(){
var animal = $(this).attr('alt')
$scope.submit(animal)
})