让jquery使用动态内容

时间:2015-02-10 03:50:00

标签: php jquery

我目前正在页面的许多部分使用非常类似的AJAX帖子请求:

$(document).ready(function() {
    $("#name").change(function(e){
        var vname = $("#name").val();
        $.post("addit.php", {name:vname}, function(response, status) {
            $("#table").html(response);
        });
    });
});

以上代码完美无缺。

我在使用动态加载的内容获取任何功能时遇到问题。因此,例如,一个由AJAX调用抓取的表单并放入我的页面,上面的内容不起作用。

如果我们可以假装我正在运行与上面相同的AJAX调用,而是使用AJAX从PHP脚本中动态加载内容。我的电话会是什么样的。 #table是一个始终出现在页面上的静态元素。

我试过这个,但它不起作用:

$(document).ready(function() {
    $("#table").on("click", "#btn1", function(e){
        e.preventDefault();
        var vname = $("#name").val();
        $.post("addit.php", {name:vname}, function(response, status) {
            $("#table").html(response);
        });
    });
});

目前我在控制台上没有显示任何内容,但它无法正常工作。

我在这里做的是正确的吗?

html看起来像这样:来自php:

<table id='table'>//this is the static element form is echoed
<form method='post'>
<input id='name' name = 'name'>
<button id='btn1' type='submit'>Add me</button>
</form>

</table>

我已经更改了我的代码,只需点击按钮而不是更改。

2 个答案:

答案 0 :(得分:0)

尝试使用以下

更新代码
$(document).ready(function() {
    $("#table #btn1").on("click", function(e){
        e.preventDefault();
        var vname = $("#name").val();
        $.post("addit.php", {name:vname}, function(response, status) {
            $("#table").html(response);
        });
    });
});

当文档

中没有元素时,无法在动态添加的元素上设置函数

如果可能的话,而不是<table>使用<div>

答案 1 :(得分:-1)

我认为你的问题是你错过了

$( document ).ajaxComplete(function() { "script here will run and be available after ajax load" });