按下按钮进行ajax调用

时间:2017-05-10 16:49:47

标签: javascript jquery ajax

我有一个按钮,我想运行一个函数,它将进行ajax调用和一些其他任务。我将按钮的ID设置为单击功能,但点击它时我无法执行任何操作。

$.ajax({
       type: "GET",
        data: {
            apikey:"85f6c6b42df5d50c164d2e47183cb357",
            q_artist: artistSearch,
            f_has_lyrics: 1,
            format:"jsonp",
            callback:"jsonp_callback"
        },
        url: "https://api.musixmatch.com/ws/1.1/artist.search",
        dataType: "jsonp",
        jsonpCallback: 'jsonp_callback',
        contentType: 'application/json',
        success: function(data) {
            console.log(data);
            console.log(data.message.body.artist_list[0].artist.artist_name);

            var myHTML = '';
            for (var i = 0; i < 5; i++) {
                myHTML += '<li class="artistName list-group-item">';
                myHTML += '<span class="name">' + data.message.body.artist_list[i].artist.artist_name + '</span></br>';

                if(data.message.body.artist_list[i].artist.artist_twitter_url != ""){
                    myHTML += '<span class="country">Country of Origin: ' + data.message.body.artist_list[i].artist.artist_country + '</span></br>';
                }

                myHTML += '<span class="rating">Artist Rating: ' + data.message.body.artist_list[i].artist.artist_rating + '</span></br>';
                if(data.message.body.artist_list[i].artist.artist_twitter_url != ""){
                    myHTML += '<a href="' + data.message.body.artist_list[i].artist.artist_twitter_url + '"><img border="0" src="twitter.png" width="25" height="25"></a>';
                }else {
                    myHTML += '<span>No Associated Twitter Account</span></br>';
                }
                myHTML += '<button id="getTopTracks">Click Me</button>';
                myHTML += '</div>';
                myHTML += '</li>';
            }
            $('#artist_output').append(myHTML);

        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        },
        complete: function(){
             $("#ajaxIndicator").modal('hide');
        }

            });
});

$('#getTopTracks').click(function getTopTracks(){
    $.ajax({
        type: "GET",
        data: {
            api_key: "e6e87757bbb9f407413260b6759921e0",
            artist: "drake",
            autocorrect: 1,
            limit: 10
        },
        url: "http://ws.audioscrobbler.com/2.0/artist.getTopTracks",
        dataType: "JSON",
        contentType: 'application/json',

        success: function(data){
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        },
        complete: function(){
        }
    });
});

按钮本身不在页面的html上,而是在另一个函数中动态输出。不确定是否是原因,但当前状态下的按钮没有响应。

1 个答案:

答案 0 :(得分:1)

对于动态插入的元素,请单击而不是单击。

使用以下内容:

$(document).on('click', '#getTopTracks', function(e){
//your code goes here
});