php - 如何将 JQuery 应用于 PHP 生成的 HTML?

标签 php jquery ajax

我有一个 PHP 文件,它生成 HTML 元素,并在页面加载时从 AJAX 调用。我想做的是将 JQuery 应用于动态生成的元素,因此每次单击从 PHP 文件生成的标签时都会发生一些事情。我尝试将 JQuery 代码放在 PHP 文件中并回显它,但这不起作用,我还将代码放在调用 AJAX 的 HTML 页面中,但这也不起作用。

在我的 HTML 中,我有:

<body onLoad="javascript:getLabels();">, 

这里通过AJAX调用php文件:

function getComments() { 
    var thePage ='loadLabels.php'; 
    ... 

PHP 文件如下行:

echo '<label id="labellink" class="ldClass">Label </label>'; 

一旦加载,页面中可能不止一个标签,但都在一个 <form> 中,所以我需要使用 JQuery,一旦加载标签并单击它们,我就可以让事情发生。

最佳答案

有两种方法可以实现您想要的目标。

1:将事件附加到 AJAX 调用的 onSuccess 内的链接以检索内容。这样,当新内容添加到 DOM 时,您可以将必要的事件附加到这些特定元素。

2:推荐的解决方案是使用事件委托(delegate)。基本上,您不是将事件附加到特定元素,而是将单个事件附加到父元素容器,并且当事件被触发时,它基于条件单击的目标(如果它本身具有特定的类)执行特定的操作行动。这是一种用于处理流动/可变内容的技术,而无需将事件重新附加到特定元素。 jQuery 的 .on() API 方法优雅地提供了这样的解决方案: http://api.jquery.com/on/

例如:

$("#container").on("a.changeColor", "click", function() {
  $(this).toggleClass("newColor");
});

您将事件委托(delegate)/附加到 id="container"的父元素,告诉它您希望所有具有“changeColor”类的子 anchor 元素切换“newColor”类。即使在更新和更改 #container 元素的内部内容后,具有“changeColor”类的新元素仍将继承单击时的行为。

关于php - 如何将 JQuery 应用于 PHP 生成的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540872/

相关文章:

php - 适用于 PHP 的 Memcached 和故障转移

php - 在 laravel 5 facebook graph api 中找不到类 Facebook

jquery - 如何淡入背景图像?

jquery - 使用jquery创建点击按钮时的iframe?

javascript - AngularJS slider 中的两种方式数据绑定(bind)

javascript - Ajax错误函数未正确清除间隔

css - 带有 Jquery 的自动 ajax 选择器

javascript - Ajax 删除所有子元素并读取更新的值

php - Phake框架: how to clone objects on captureAll?

php - GMT 时间和 mysql NOW() 给出 2 分钟差异