2014-06-14 48 views
0

我有一个每个都带有按钮投票的注释列表。
当票发售者我调用这个函数:JQuery ajax在动态添加的表单上不起作用

$(".vote").on("click", function (e) {... 

但是,当我添加新评论到列表中我使用此功能添加:

$("#frmNewComment").on("submit", function(event) { 
      event.preventDefault(); 

      var url = $(this).attr("action"); 
      var formData = $(this).serialize(); 

      $.ajax({ 
       url: url, 
       type: "POST", 
       data: formData, 
       dataType: "html", 
       success: function (html) { 
        $(".comments-list").append(html); 
       } 
      }); 

     }); 

但它并不能使它AJAX请求当投票。
评论被引用到服务器,但没有AJAX。
在这个过程中应该做些什么?

+3

使用代表团'它将工作$(文件)。在(“CL ick“,”.vote“,function(){});'http://api.jquery.com/on/ – GillesC

+0

我猜'id''#frmNewCommment'正在被复制.. –

+0

@gillesc就是这样:) – 1110

回答

0

更换

$("#frmNewComment").on("submit", function(event) { 

$("body").on("submit","#frmNewComment", function(event) { 

如果你改变表单元素与Ajax响应

使用相同的点击事件

$("body").on("click",".vote", function (e) {... 
+0

'on'的参数是错误的方法,当点击'.vote'时不会触发。 – GillesC

+0

为什么不触发...和为什么Downvote ... – Shail

+0

好吧,现在你已经添加了'.vote'部分,当第一次发布时它不在那里,但参数仍然是错误的。从jquery'on'文档'.on(events [,selector] [,data],handler)'第一个参数是事件类型,第二个是选择器而不是其他方式。 – GillesC