Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery中动态创建嵌套元素时访问子元素并将其绑定到事件_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在jquery中动态创建嵌套元素时访问子元素并将其绑定到事件

Javascript 在jquery中动态创建嵌套元素时访问子元素并将其绑定到事件,javascript,jquery,html,Javascript,Jquery,Html,首先感谢大家,如果问题的标题有误导性,我也很抱歉。我不知道如何表达我的问题。我再次道歉。现在我的问题是 我最近被指派为我正在工作的站点创建一个登录弹出窗口。长话短说,将有一个“登录”在网站上的每一页链接。单击链接后,将打开一个弹出窗口/气球,其中包含表单元素“username&password”和一个按钮 现在,我使用jquery(因为页面仍然使用jquery)fadeIn和fadeOut API创建了登录弹出窗口 这个例子可以在这里找到 上面的示例按照我希望的方式运行良好。现在问题来了。正如我

首先感谢大家,如果问题的标题有误导性,我也很抱歉。我不知道如何表达我的问题。我再次道歉。现在我的问题是

我最近被指派为我正在工作的站点创建一个登录弹出窗口。长话短说,将有一个“登录”在网站上的每一页链接。单击链接后,将打开一个弹出窗口/气球,其中包含表单元素“username&password”和一个按钮

现在,我使用jquery(因为页面仍然使用jquery)fadeIn和fadeOut API创建了登录弹出窗口

这个例子可以在这里找到

上面的示例按照我希望的方式运行良好。现在问题来了。正如我前面提到的,这个功能将出现在每个页面上。因此,为了提高代码效率,我考虑使用jQuery动态创建整个嵌套元素,并在单击元素时调用函数

因此我提出了第二个例子

在第二个示例中,fadeIn API正常工作,但fadeOut不正常

以下是该问题的相关代码

$(document).ready(function(){
            $("#clickme").click(function(){
                $('body').append('<div id="popupLogin"><div id="login_content"><p id="exit" style="float:right;">&Chi;</p><div id="input_block"><form action="" method="" style="text-align: center;"><strong>Username&nbsp;:&nbsp;&nbsp;</strong><input name="" type="text" size="25" class="inputField" /><br><strong>&nbsp;Password&nbsp;:&nbsp;&nbsp;</strong><input name="" type="password" size="25" class="inputField" /></form><button type="submit">Login</button></div></div></div>');
                $("#popupLogin").fadeIn(900);
            });

            $("#exit").click(function(){
                $("#popupLogin").fadeOut(700);
            });
        });
$(文档).ready(函数(){
$(“#单击我”)。单击(函数(){
$('body').append('p id=“exit”style=“float:right;”“>&Chi;

用户名:
密码:Login'); $(“#popupLogin”)。fadeIn(900); }); $(“#退出”)。单击(函数(){ 美元(“#popupLogin”)。淡出(700); }); });
与仅在正文部分中包含一段html代码(如此处所示)不同

<div id="popupLogin">
        <div id="login_content">
            <p id="exit" style="float:right;">&Chi;</p>
            <div id="input_block">
                <form action="" method="" style="text-align: center;">
                    <strong>Username&nbsp;:&nbsp;&nbsp;</strong>
                    <input name="" type="text" size="25" class="inputField" />
                    <br>
                    <strong>&nbsp;Password&nbsp;:&nbsp;&nbsp;</strong>
                    <input name="" type="password" size="25" class="inputField" />
                </form>
                <button type="submit">Login</button>
            </div>
        </div>
    </div>

&Chi

用户名:
密码: 登录
我错过了什么?另外,如果我对代码效率的思考方式有缺陷,请建议我什么更好。提前感谢。

由于
#exit
是动态创建的,您需要在元素上使用事件委派:

$(document).on('click',"#exit",function(){
    $("#popupLogin").fadeOut(700);
});
还有我的品味,你的方法没有错