在我的Index.cshtml页面中,有一个<div id="searchResults"></div> ,我通过调用带有cache: false $.ajax来填充表单提交的局部视图(仅包含WebGridcache: false (这是loadWithoutCaching函数的功能)。 在这里,我还注册了处理程序以对悬停并单击WebGrid内的行做出反应:

$(document).ready(function () {
  $("form").submit(function () {
    var model = $(this).serialize();
    $("#searchResults").loadWithoutCaching(
      "/LogSearch/SearchResults",
      model,
      function () {
        $("#accSearchCriteria").accordion("option", "active", false);
        $("#accSearchResults").accordion("option", "active", 0);

        registerRowEvents();
      });
    return false;
  })
})

function registerRowEvents() {
  $("#grdResults tbody tr").hover(function () {
    $(this).toggleClass("clickable");
  }).on("click", function () {
    alert("bing");
  })
}

问题:我在WebGrid使用分页,并且在第一次切换页面后,我不再对悬停做出反应或单击任何行。 我知道这些事件处理程序会丢失,但是如何(或更确切地说,何时)重新附加它们?

当我的网站的这一部分通过分页重新加载时(进入控制器中的action方法以自行再次获取其数据),就没有其他$(document).ready了。 有什么我可以使用的东西吗? 我在包含WebGriddiv上尝试了onload和其他方法,但是那也不起作用。

我也试过反应,在点击a元素触发寻呼,但是这是为时尚早。 在网格完成分页并重新附加代码以处理悬停和单击之后 ,我必须抓紧时间。 我怎样才能做到这一点; 还是有更好的方法?

编辑:我发现$(document).ajaxComplete(fn)在重新加载网格时触发。 现在,所有剩下的就是找出触发事件,就是其中<div>在网页加载,因为有不止一个。 你能帮我吗?

#1楼 票数:0

请查看它是否对您有帮助。请使用事件委托,这基本上会为当前和将来的元素添加click事件监听器

$(document).ready(function () {
    App.initEvents();
  $("form").submit(function () {
    var model = $(this).serialize();
    $("#searchResults").loadWithoutCaching(
      "/LogSearch/SearchResults",
      model,
      function () {
        $("#accSearchCriteria").accordion("option", "active", false);
        $("#accSearchResults").accordion("option", "active", 0);
        });
    return false;
  });

});

var App={
initEvents:function(){
    $(document).on("hover","#grdResults tbody tr",function(){
    $(this).toggleClass("clickable");
    });

  $(document).on("click","#grdResults tbody tr",function(){
  alert("bing");
  });

}
};

  ask by InvisiblePanda translate from so

未解决问题?本站智能推荐:

1回复

Webgrid Ajax调用MVC 5

目标: 通过ajax选择下一页时填充网络网格(我不希望重新加载页面)。 目前我有: 和 问题: Webgrid出现了,但似乎只对index动作进行了get调用。 如何更改此设置,以便它将对提供模型的方法执行ajax调用? 我已经看过这里,但并没有给我太多
1回复

在MVC视图中选择网格行

在我的MVC应用程序中,我使用webgrid在视图中显示用户详细信息。 在每一行中,都有一个带有单选按钮的列以选择该行。 在同一视图中,它也具有一种形式。 如果用户通过单击单选按钮选择一行,则相应的详细信息应填写在表单控件中。 然后,用户可以从该表单中编辑详细信息。 如何根据行
1回复

以模式显示数据单击“ Web网格列”后弹出

我的“异常栏中的数据”非常大,我决定显示“动作链接”而不是“数据”,当用户单击该链接时,模式弹出窗口将显示数据。单击“动作链接”可以显示模型弹出窗口但我的问题是我无法在模式弹出窗口中显示与该记录对应的数据。 下面是我的Java代码,用于调用Modal PopUp 下面是显示数据的Web
1回复

在MVC应用程序中隐藏Webgrid中的列

我有两列要隐藏在网络网格中。 该网络网格位于局部视图中。 这是下面的列 这是我尝试下面的jQuery 这是行不通的。 请协助。
1回复

用Ajax在MVC4中重新加载Webgrid

我有一个启用分页和排序的Web网格。 现在,一切正常。 我试图在网格上方添加一个搜索文本框和一个链接“ GO”。 我的目的是根据该文本框中的文本过滤网格。 我需要申请的最佳方法是什么? 如果我要使用ajax,那么如何加载网格。 我得到的返回值为'html' 下面是代码 脚
1回复

WebGrid分页href正在更改

我第一次进行分页时效果很好。 当我将光标放在页脚分页上时,它看起来像 如果我在WebGrid上执行任何操作(编辑,删除或可见),则分页URL会更改为类似 码 我不明白为什么网址会更改。 谁能帮我这个?
1回复

在MVC中对模式进行分页

用户可以在我的mvc应用程序上进行搜索,然后将结果存储在一个会话中,然后将其显示在我的分页正常的Webgrid上。 问题是我通过模式进行了预先搜索,因此分页不起作用。 每当我尝试转到其他页面时,它都不会显示任何内容。 这就是我现在所拥有的。 控制者 索引检视
1回复

在部分页面上的webGrid中使用jquery进行无限滚动

我试图在Webgrid控件中使用无限滚动。 我的Webgrid位于部分页面中。 我设法使它“滚动”,但是问题是我的Webgrid标头重复出现,原因是网格位于部分页面中,因此整个内容再次被渲染。 其他人有类似的问题或想法如何解决? 这是我的查看代码: 这是我的控制器代码: