【问题标题】:onclick jquery not working after ajax callajax调用后onclick jquery不起作用
【发布时间】:2015-12-17 10:18:51
【问题描述】:

我对 jQuery 完全陌生。

我写了一个这样的 onclick 事件:

     $(document).ready(function () {
         $('body').find('.milestonetable').each(function () {
            var mTable = $(this);
            $(this).find('tr:first').children().eq(0).find('table').find('tr:last').children().eq(0).find('span').on('click', function () {
                var _mid = $(mTable).parent().next('table').find('tbody').find('tr').children().eq(1).find('input').val();
             //some other things to do.
            });

         });
    });

它工作正常。 但是当我调用 ajax 时,它会停止工作。 我发现我必须这样写:

      $(document).on('click','.someclassName', function () {  

       });

但我无法将上面的代码转换为类似于下面的代码。 请帮忙。

注意:我使用的是 jQuery 1.10.4

【问题讨论】:

  • on 的委托形式正是您应该使用的。由于您提供的信息不足,我们无法为您提供更多帮助。
  • 给我们你进行 Ajax 调用的代码
  • 你说调用 ajax - 那是 asp.net ajax 回发吗?
  • @Mahatma Aladdin,我发布了主要想法供您遵循。如果需要更多帮助,请分享您的 html 和更多详细信息。

标签: javascript jquery css asp.net


【解决方案1】:

以下列方式配置事件可能会解决您的问题。

$(document).on("click",".class-added-to-your-span", function(){


});

可以在此处找到有关实时委托的更多详细信息 > http://api.jquery.com/live/

【讨论】:

    【解决方案2】:

    您可以将您的代码替换为以下代码:

    $('.milestonetable').on('click', '.class-added-to-your-span', function () {
        var mTable = $(this).closest('.milestonetable');
    
    
    });
    

    请注意,我在您正在搜索的 span 中添加了一个类:class-added-to-your-span

    这样,您可以将 click 事件处理程序附加到您的 span 的 .milestonetable,并使您的代码更简单一些。

    【讨论】:

    • 你能不能更好地描述一下它的作用,而不是仅仅发布代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多