我有一个 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/