【问题标题】:Add function to dynamically created images为动态创建的图像添加功能
【发布时间】:2017-02-02 19:22:50
【问题描述】:

我正在使用 AngularJS 创建一个简单的搜索功能,它允许您输入中国生肖中的动物名称,并获取兼容动物的图像。我想扩展这个应用程序,以便单击动态创建的元素之一会显示相关的动物列表。

我的第一个想法是在所有图像元素上创建一个单击事件侦听器,但这不适用于 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;
            }
        }

    });

Plunkr:http://plnkr.co/edit/9GtvFt5Kbvn1Sb98AXrA?p=preview

【问题讨论】:

  • 首先,为了清晰起见,也许可以在 script.js 中编写代码,其次是放开所有 jQuery 的东西。
  • 谢谢,采纳了您的建议,代码更简洁

标签: javascript angularjs


【解决方案1】:

我最终为动态图像使用了 jQuery 的事件监听器:

$('#zodiac').on("click",'img',function(){
    var animal = $(this).attr('alt')
    $scope.submit(animal)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多