javascript - JQuery 创建按钮但不可点击

标签 javascript jquery html ajax

我有创建 html 文件正文的代码。 我用 JQuery 创建它。

代码如下:

脚本JS

$(document).ready(function(){
   homePage();
});

function homePage(){
$.ajax({
    url: "http://events.restdesc.org/",
    type: "GET",
    dataType:'json',
    success: function (response) {
        var data = response;
        var html = $("<h1></h1>").text(data.title);
        var br = $("<br>");
        var eventbtn = $('<input />', {
            type  : 'button',
            id    : 'eventbutton',
            value : 'Events',
            on    : {
                click: getevents(data.events)
            }
        });
        html.append(br,eventbtn).appendTo($("body"));

    },

    error: function(error){
        console.log("the page was not loaded", error);
    },

});
}

function getevents(url){
    console.log(url);
}

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
    <script src="https://code.jquery.com/jquery-2.1.1.js"></script>
    <script src="script.js"></script>
</head>
</body>
</html>

打开index.html时会直接调用homePage函数。 它确实有效,我看到一个标题和一个按钮,但是代码会自动触发,它会在控制台中打印 url。但是当我点击它时,它不会在控制台中打印它。 我需要如何更改我的代码才能获得一个在单击按钮时仅打印给定网址的按钮?

最佳答案

尝试设置 data-url 属性,然后使用 $(this) 访问它:

function homePage(){
    $.ajax({
        url: "http://events.restdesc.org/",
        type: "GET",
        dataType:'json',
        success: function (response) {
            var data = response;
            var html = $("<h1></h1>").text(data.title);
            var br = $("<br>");
            var eventbtn = $('<input />', {
                type  : 'button',
                id    : 'eventbutton',
                value : 'Events',
            });
            eventBtn.addClass('dynamic-btn');
            eventbtn.data('url', data.events);

            html.append(br,eventbtn).appendTo($("body"));
        },
        error: function(error){
            console.log("the page was not loaded", error);
        }
    });
}


$(document).on('click', '.dynamic-btn', 
    function (e) {
        console.log($(this).data('url'));
    });

关于javascript - JQuery 创建按钮但不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586441/

相关文章:

javascript - 如何将嵌入式 JSON 扁平化为多个文档

javascript - LocalStorage是应用程序常用的,那么如何避免误删除值呢?

javascript - 未触发可排序句柄

javascript - 使用 jquery 创建动态组合框

javascript - 如何像ajax调用一样从promise中包装对象,返回值有何不同?

javascript - 在用户单击链接之前,如何防止加载我的图像 slider ?

javascript - 如果第 2 列的值与该值匹配,则复制最后一行 onFormSubmit

javascript - 为什么我在我的表中看不到我的 JSON 数据?

html - 使用css对齐字符串中不同大小的字符

html - 为什么边距的背景颜色与页面/元素背景颜色不同?