事件委托不使用@ Html.RenderAction

时间:2016-04-26 19:52:31

标签: jquery asp.net-mvc

我使用@ Html.RenderAction渲染页面,我想使用$.ajax()更新页面,但是当我尝试这样做时,如果我使用下面的代码,则无法识别click事件

$(document).on('click', '.saleType > a', function () {
    var saleType = $(this).text();
    alert(saleType)
    //ajax request made
}); 

但如果我使用

,则会识别click事件
$('.saleType > a').click(function () {
    var saleType = $(this).text();
    alert(saleType)
    //ajax request made
})

使用第二段代码不是答案,因为只识别第一次点击并且无法识别所有后续点击。

为什么我的第一段代码无效?

编辑: 感谢@shyju我可以看到代码是孤立的,所以我的问题是如何调试这个问题?

1 个答案:

答案 0 :(得分:0)

看起来对我来说。您当前版本的jQuery可能无法正确处理事件委派上下文中的直接子选择器'.saleType > a'。我想出了两个解决方案:

  • 将您的jQuery版本更新为最新版本(如果不是这样的话)
  • 以这种方式排查:

示例:

$(document).on('click', 'a', function () {
  var isSaleType = $(this).parent().is('.saleType');
  if(isSaleType) { /* your code */ }
});

如果第一个选项不起作用,您可能发现了一个问题。如果是,请向jQuery小组报告:https://github.com/jquery/jquery/issues