动态列出并单击事件

时间:2018-05-09 10:58:01

标签: javascript jquery

我需要制作列表(如angularjs中的ng-repeat)并单击列表中的任何项目,使用所选项目的传递数据调用函数

我使用$.ajax电话和$.each

制作列表
$(document).ready(function() {

    var inHTML = "";

    $.ajax({
        url:        'http://some.some',
        dataType:   "json",
        success:    function(data){
            $("#dynamicTable").append('<tr><th><h5 style="margin-left: 15px; margin-top: 15px;">' + "Events" + '</h5></th></tr>');
            $.each(data.videos, function(key, value){

                $("#dynamicTable").append('<table><tr><td class="aktivniItem backgroundIdKlupa_izbornik_td" style="color: white">'+ moment(value.time).format('DD-MM-YYYY HH:mm:ss') +'</td><tr></table>').click({param1: value.href}, setSourceToVideoPlayer);
            });
            function setSourceToVideoPlayer(event){
                alert(event.data.param1);
            }
        }
    });
});

和HTML

<table id="dynamicTable" class="table-hover"></table>

问题是,使用此代码,当我点击列表中的任何项目时,我会一步一步地获取所有项目的传递数据的警报,而不仅仅是点击。

2 个答案:

答案 0 :(得分:2)

请尝试以下代码。我已经给出了唯一的想法,可能会出现一些语法错误。

$(document).ready(function() {

var inHTML = "";

$.ajax({
    url:        'http://some.some',
    dataType:   "json",
    success:    function(data){
        $("#dynamicTable").append('<tr><th><h5 style="margin-left: 15px; margin-top: 15px;">' + "Events" + '</h5></th></tr>');
        $.each(data.videos, function(key, value){

            $("#dynamicTable").append('<table><tr><td class="aktivniItem backgroundIdKlupa_izbornik_td" data="' + value.href + '" style="color: white">'+ moment(value.time).format('DD-MM-YYYY HH:mm:ss') +'</td><tr></table>');
        });

    $(".aktivniItem").click(function (){
     alert($(this).attr("data"));
    });

    }
});
});

答案 1 :(得分:0)

目前,我只能通过event.stopImmediatePropagation();

来实现这一目标
function setSourceToVideoPlayer(event){
            alert(event.data.param1);
            event.stopImmediatePropagation();
        }

以下是this的详细信息。如果这不是一个好方法,请告诉我。日Thnx