如果动态加载jQuery,jQuery的ajax()不起作用

时间:2015-09-28 13:18:37

标签: javascript jquery html ajax

我正在尝试使用jQuery' post()get(),但他们无法正常工作。 我没有HTML所以我这样加载jQuery:

var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js';
document.head.appendChild(script);

似乎已成功加载。使用控制台中的window.jQuery进行检查。

创建按钮后立即:

var btn = document.createElement("button");
btn.id = 'gogogo';
var txt = document.createTextNode("Go");
btn.appendChild(txt);
document.body.insertBefore(btn, document.body.childNodes[0]);

按钮已成功创建。

在此之后,我有了所需的post()

$("#gogogo").click(function () {
    var txt = '123';
    $.post("/users", {qwe: txt}, function(result){
            alert(result);
    });
});

根本不会发生。单击按钮时,FireBug中的NET部分仍为空。

有人知道我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

使用jQuery的.on事件,因为您正在动态创建元素,即event delegation.

对于前。

$(document).on("click","#gogogo",function () {
    alert("Inside #gogogo event handler");
    var txt = '123';
    $.post("/users", {qwe: txt}, function(result){
            alert(result);
    });
});