如何在Jquery delegate()中进行ajax调用

时间:2011-07-19 07:35:17

标签: ajax jquery

我有一个JQuery的委托函数来删除一个锚定标记为删除的网格行,如下所示

 $('#MyGrid').delegate('a.remove', 'click', function() {

            // e.preventDefault();
            var tr = $(this).closest('tr');   
        var htmlstring = tr.find("td").eq(0).html();
        alert(htmlstring);  
            jQuery.ajax(  //$.ajax( also not working
                {
                    type: "POST",
                    url: "UploadDocuments/Removefile",
                    data: "removefile=" + htmlstring, 
                 success: function(){
                      tr.remove();
                       }
                });
        });

这是我在JQuery的成功函数中进行委托调用的地方

    success: function(result) {
 var htmlString = [result];
                for (i = 0; i < htmlString.length; i++) {
       $('#MyGrid tbody').append('<tr><td><a href=' + htmlString[i].no + '>' + htmlString[i].name+ '</a></td><td><a href=' + htmlString[i].no+ ' class="remove">Remove</a></td></tr>');
}
           },

现在我想进行如下所示的ajax调用但是一旦我点击删除它就没有击中,但是最初正在加载。我还需要传递数据,即删除行的名称。我怎么能得到那个值? 你们中的任何人可以帮助我吗?被卡住!! ;)

感谢你,

michaeld

2 个答案:

答案 0 :(得分:1)

尝试使用IndexOfNameColumn指向名称列索引。

$('#MyGrid').delegate('a.remove', 'click', function() {

        // e.preventDefault();
          var tr = $(this).closest('tr');   //line#3
var htmlstring = tr.find("td").eq(IndexOfNameColumn).html();
        jQuery.ajax(  //$.ajax( also not working
            {
                type: "POST",
                url: "UploadDocuments/Removefile",
                data: "removefile=" + htmlstring //file name from line#3
            });
tr.remove();
    });

答案 1 :(得分:0)

试试这段代码 -

$('#MyGrid').delegate('a.remove', 'click', function() {

        // e.preventDefault();
          var tr =     $(this).closest('tr').find("td").eq(0).find('a').text().replace(/"/g,"").trim();  //line#3   
       var $this =  $(this);
        jQuery.ajax(  
            {
                type: "POST",
                url: "UploadDocuments/Removefile",
                data: "removefile=" + tr //file name from line#3
                 success: function(){
                  $this.closest('tr').remove(); 
                   }
            });

    });