gpt4 book ai didi

javascript - jQuery 选择动态创建的 html 元素

转载 作者:可可西里 更新时间:2023-11-01 01:48:12 25 4
gpt4 key购买 nike

有很多与我的这个问题标题几乎相似的问题,但你知道我没有找到答案。

我的简单问题是:我有按钮,当我点击它时,javascript 创建模式窗口

<div class="aui-dialog">
html here...
<button id="closeButton">Close</button>
</div>

就在<body>之后标签。

我可以使用 jQuery live 毫无问题地绑定(bind)关闭按钮的点击事件:

$("#closeButton").live("click", function() { 
alert("asdf"); // it calls
$("body").find(".aui-dialog").remove();
});

我的问题是,我无法通过类名选择动态创建的模态窗口 div。这样我就可以调用 jQuery .remove() 方法来执行关闭操作。现在我知道,我必须以另一种方式处理动态元素。

什么方式?

编辑:
我认为提及这一点很重要:
我不自己创建模态窗口,我使用 liferay门户网站。它具有创建该模式窗口的内置 javascript 框架 AUI( YUI )。我可以在它的 View 中创建它内部的关闭按钮。

编辑 2:
模态窗口 div 类属性值为:“aui-component aui-panel aui-dialog aui-widget-positioned

最佳答案

因为 jquery 会在页面加载时读取当前的 DOM 状态:

jQuery( document ).ready(function( $ ) {

它会遗漏您在页面加载后生成的元素。

一个简单的解决方案是监听对文档的点击,并使用您要用于执行代码的类或元素类型进行过滤。这样 jquery 将在页面加载后找到在文档下生成的新元素。

$(document).on("click", '#closeButton', function(){
$(".aui-dialog").remove();
});

关于javascript - jQuery 选择动态创建的 html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com