JQuery仍然让我发疯... 问题在于:我有一个页面,访问者可以通过点击div内的链接(id =“contact”)来留下他们的电子邮件地址。
<div id="contact"><a href="">vuoi lasciare un recapito?</a></div>
点击后,“contact”div加载一个php表单。用户输入他的电子邮件地址,然后检查地址,然后插入数据库等...通常的业务。
$(document).ready(function() {
$('#contact a').click(function()
{
$('#contact').load('mailform.php');
return false;
});
$('#contact').submit(function(){
var email = $('input[name=email]', '#submitmail').val();
var submit = $('input[name=submit]', '#submitmail').val();
$('#contact').load('mailform.php',{'email': email,'submit': submit});
return false;
});
//the close button - start
$(".cls").click(function(){
alert($(this).parent().html());
$(this).parent().hide();
});
//the close button - end
});
当我想添加“关闭”按钮或链接时会出现痛苦,因此用户可以在填写表单之后甚至在填写表单之前隐藏表单。
<div id="submitmail">
<form action="#" method="post">
<fieldset>
<p><label for="email"><?php echo $_SESSION['nome']; ?></label><input type="text" name="email" /></p>
<p class="submit"><input type="submit" name="submit" value="inserisci" /></p>
</fieldset>
</form>
</div>
<span class="cls">Chiudi</span>
链接(和“关闭按钮”脚本)根本不起作用。没有警报,没有开关,没有div消失......没什么。
已经尝试过$('span.cls').click(function()
和$('#cls').click(function()
(用“div”和带有ID的类切换“span”之后)没有线索。只是一个单击的链接,什么都不做。 Firebug和IE开发工具栏甚至没有进入该功能。
欢迎替代解决方案......
谢谢!
答案 0 :(得分:4)
试试这个:
$("#contact").on("click", ".cls", function(){
alert($(this).parent().html());
$(this).parent().hide();
});
因为.cls
元素在绑定时不存在 - 所以您需要将处理程序委托给合适的父元素。阅读本文的“直接和委派活动”部分:
以上链接摘录:
如果要将新HTML注入页面,请选择元素和 将新HTML放入页面后附加事件处理程序。要么, 使用委托事件来附加事件处理程序......
答案 1 :(得分:0)
我的猜测是关闭按钮不是documentReady上DOM的一部分。
答案 2 :(得分:0)
您没有复制以下html的父级:
<span class="cls">Chiudi</span>
试试这个:
$(".cls").click(function(){
// alert($(this).parent().html());
$('#submitmail').hide();
});