【问题标题】:Jquery Event on a Ajax responseAjax 响应上的 Jquery 事件
【发布时间】:2025-11-22 10:50:01
【问题描述】:

如何在 ajax 请求创建的元素上为 .click() 事件运行 jquery 函数?

对于普通元素它可以工作,但我想为由 ajax 请求创建的元素执行此操作。而且它不起作用...

$(".links").click(function(){alert("aaaa");})

a class="links" >1</a;

我也尝试过使用“链接”作为 id。 我需要它来做分页系统。

请帮忙:(

【问题讨论】:

    标签: php jquery html ajax


    【解决方案1】:

    在将新元素插入 DOM 后,您需要再次运行代码来绑定 click 事件处理程序。或者,您可能想使用.live()

    【讨论】:

    • 我的意思是在附加新的超链接之后执行$(".links").click(...)(无论如何,通过load(),或append(),或其他方式)。
    • 你是个天才。我用 .live 做到了。有用!!!你已经结束了两个小时的绝望搜索!非常感谢
    • 并且对于添加到 的 onclick?我该怎么办?
    • 在我的脑海中,我不知道您新添加的 HTML 代码中的 onclick 是否会运行。在任何情况下,将 jQuery 绑定事件与本机事件混合通常是一个坏主意。
    【解决方案2】:

    使用jquery live

    【讨论】:

      【解决方案3】:

      实时使用 jquery,

      $(".links").live('click', function(){
          //user code here
      });
      

      要处理动态加载的 dom,你应该使用 live 函数。 jquery在页面加载后不会自动加载页面doms。

      【讨论】:

        【解决方案4】:

        你应该像这样使用 live():

        $(".links").live('click', function(){alert("aaaa");})
        

        这也适用于添加到文档中的元素

        对于每个 &lt;a&gt; 元素的 onclick,您必须这样做(如果这是您的意思:

        $("a").live('click', function(){
              alert($(this).attr("id"));
            })
        

        这会将事件附加到所有 &lt;a&gt; 元素以及之后添加的元素。

        编辑 - 现在警报显示链接的 ID:在这种情况下,“this”指的是已点击的 &lt;a&gt;

        【讨论】:

        最近更新 更多