Javascript 在jquery中动态创建嵌套元素时访问子元素并将其绑定到事件
首先感谢大家,如果问题的标题有误导性,我也很抱歉。我不知道如何表达我的问题。我再次道歉。现在我的问题是 我最近被指派为我正在工作的站点创建一个登录弹出窗口。长话短说,将有一个“登录”在网站上的每一页链接。单击链接后,将打开一个弹出窗口/气球,其中包含表单元素“username&password”和一个按钮 现在,我使用jquery(因为页面仍然使用jquery)fadeIn和fadeOut API创建了登录弹出窗口 这个例子可以在这里找到 上面的示例按照我希望的方式运行良好。现在问题来了。正如我前面提到的,这个功能将出现在每个页面上。因此,为了提高代码效率,我考虑使用jQuery动态创建整个嵌套元素,并在单击元素时调用函数 因此我提出了第二个例子 在第二个示例中,fadeIn API正常工作,但fadeOut不正常 以下是该问题的相关代码Javascript 在jquery中动态创建嵌套元素时访问子元素并将其绑定到事件,javascript,jquery,html,Javascript,Jquery,Html,首先感谢大家,如果问题的标题有误导性,我也很抱歉。我不知道如何表达我的问题。我再次道歉。现在我的问题是 我最近被指派为我正在工作的站点创建一个登录弹出窗口。长话短说,将有一个“登录”在网站上的每一页链接。单击链接后,将打开一个弹出窗口/气球,其中包含表单元素“username&password”和一个按钮 现在,我使用jquery(因为页面仍然使用jquery)fadeIn和fadeOut API创建了登录弹出窗口 这个例子可以在这里找到 上面的示例按照我希望的方式运行良好。现在问题来了。正如我
$(document).ready(function(){
$("#clickme").click(function(){
$('body').append('<div id="popupLogin"><div id="login_content"><p id="exit" style="float:right;">Χ</p><div id="input_block"><form action="" method="" style="text-align: center;"><strong>Username : </strong><input name="" type="text" size="25" class="inputField" /><br><strong> Password : </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;">Χ</p>
<div id="input_block">
<form action="" method="" style="text-align: center;">
<strong>Username : </strong>
<input name="" type="text" size="25" class="inputField" />
<br>
<strong> Password : </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);
});
还有我的品味,你的方法没有错