Javascript 带有on()的Ajax帖子

Javascript 带有on()的Ajax帖子,javascript,jquery,ajax,Javascript,Jquery,Ajax,我来解释这个问题。我可以用这个函数发布AJAX表单,除了。removebet I来自AJAX之外,没有问题 如果我使用AJAX附加.removebet I,此函数将不起作用,因为它不调用AJAX 例如: $('body').on('click','.removebet i',function(e){ var a = $(this).attr("id"); var data = "a="+a; $.ajax({ type: "POST",

我来解释这个问题。我可以用这个函数发布AJAX表单,除了
。removebet I
来自AJAX之外,没有问题

如果我使用AJAX附加
.removebet I
,此函数将不起作用,因为它不调用AJAX

例如:

$('body').on('click','.removebet i',function(e){
    var a = $(this).attr("id");
    var data = "a="+a;

    $.ajax({
        type: "POST",
        url: "yorumcikar.php",
        data: data,
        success: function(e){
    });
$(“.maindiv”).html(“是”);

然后,当我单击“I”标记时,顶部的函数不起作用。

我认为这应该起作用

$(".maindiv").html("<span class='removebet'><i>Yes</i></span>");
编辑

这将起作用,但是每个新添加的项都不会被绑定,因为绑定已经发生。为了使新添加的项目也被绑定,您必须在添加项目时重新绑定它们

$('.removebet > i').click(function(event){
    var a = $(this).attr("id");
    alert(a);

    $.ajax({
        type: "POST",
        url: "yorumcikar.php",
        data: data,
        success: function(retval){
            alert(retval);
        }
    });
});

你能再解释一下你的问题吗。目前这没有多大意义。另外,我假设语法错误只是复制+粘贴错误?您的最后一句话似乎是说您的
.removebet I
元素在单击之后才创建,这显然不是您真正的意思。是否有其他代码(未显示)创建了
.removebet i
元素?您的页面上带有class
removebet
的元素下是否真的有
标记?挑剔:为什么要使用作为可单击元素?使用可点击的元素!您正在委派单击事件。您感兴趣的事件是单击
.removebet i
元素时,确定。。。到目前为止,我一直和你在一起。这些元素是使用AJAx调用插入的。。。再说一遍:这没什么错。这些元素是在单击事件回调调用AJAX函数后添加的。。。好的,调用ajax来添加一个元素,必须单击该元素才能进行ajax调用,以便ajax调用可以添加调用ajax来添加的元素。。。看到问题了吗?这显然不起作用,因为ajax将添加新的
。removebet i
匹配元素,这些元素将不受此约束。他已经正确地授权了他的活动,但是这是不正确的。这不是我要寻找的。我正在搜索一个与ajax Posts一起使用的函数。在我回答这个问题时,这个问题被更改了。很抱歉给你带来了困惑。最初,他问为什么调用ajax不起作用,除非他从on callDelegation中删除“.removebet i”仍然是处理此问题的更好方法。
$.ajax({call to get your new item},
      success: function(data){
          // add to dom
          bindElement(newElement);
      }
 });

function bindElement(element){
$(element).click(function(event){
    var a = $(this).attr("id");
    alert(a);

    $.ajax({
        type: "POST",
        url: "yorumcikar.php",
        data: data,
        success: function(retval){
            alert(retval);
        }
    });
});
}