jQuery在Ajax发布之后无法正常工作

时间:2014-09-30 23:30:08

标签: javascript jquery ajax asp.net-mvc

我目前正在使用MVC页面,我正在使用Grid.Mvc表。我也有一些搜索字段,我可以通过Ajax Post更新表,一旦我使用搜索字段并提交排序html被替换后回传,一旦被替换,网格行不能像Ajax调用之前那样被点击,就像ajax调用是杀死javascript或Jquery或两者一样,

这是网格的Ajax调用代码:

$(function() {
  $(document) on.("click", "#buscar", function() {
    $.ajax({
      url: '/MainPage/Grid',
      type: 'POST',
      async: false,
      datatType: 'html',
      processData: true,
      data: {
        url: $('#url').val(),
        isInternal: ('#isInternal').val()
      },
      success: function(data) {
        $('#grid').html(data);
      }
    })
  });
});

这是我单击发送另一个Ajax调用的行的代码,但在第一个代码发布后,网格变得无法点击;

$(function() {
  pagesGrids.linksgrid.onRowSelect(function() {
    $.ajax({
      url: '/mainpage/getlinkdetails',
      type: 'POST',
      async: false,
      dataType: 'html',
      processData: true,
      data: {
        id: e.row.BrokenId
      },
      success: function(data) {
        $('#linkdetails').html(data);
      },
      error: function() {
        alert('something went wrong')
      }
    })
  });
})

任何有助于我指明正确方向的帮助或暗示都将非常感谢,谢谢

更新

它自己的网格是MVC上的索引的局部视图渲染

<div id="grid">
  @Html.Action"Grid"
</div>

2 个答案:

答案 0 :(得分:0)

您的局部视图正在将新元素渲染到页面中,而不是更改现有元素。

在部分回发后,您需要将javascript事件(单击)重新绑定到新元素。

答案 1 :(得分:0)

尽管这是一篇老文章,但我找到了一个对我有用的解决方案,并希望它对其他人也有用。

AJAX表单具有一个名为 data-ajax-complete 的数据破折号属性,您可以向其传递要运行的javascript函数的名称。该javascript函数可以包含将click事件重新绑定到所有元素所需的代码。

<a href="file://CENTRAL/path/audio.WAV">

更多详细信息here