无法关闭表格

时间:2013-04-03 16:10:30

标签: javascript jquery html5

我使用这些库:

<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.css"> 
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.js"></script>

我有一个隐藏的表单,只有在我点击按钮时才显示。但我无法关闭它。

我在互联网上找到了这个例子,我试图在我的页面中实现它。

需要帮助,我已经尝试了很多但没有任何作用。

这是我的代码:

<div id="login-box" class="login-popup">
<a href="#" class="closest"><img src="icon/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a>
  <form method="post" class="signin" action="#">
        <legend>Contacto</legend>
        <fieldset class="textbox">
        <label class="Nome">
        <span>Nome</span>
        <input id="nome" name="nome" value="" type="text" autocomplete="on" placeholder="Nome">
        </label>
        <label class="Email">
        <span>Email</span>
        <input id="email" name="email" value="" type="email" placeholder="nome@dominio.com">
        </label>
        <label class="Mensagem">
        <span>Mensagem</span>
        <textarea rows="20" cols="56" name="mensagem" id="comment" id="mensagem" placeholder="A sua mensagem..."></textarea></label>

        <button type="submit" class="submitbutton" style="width:80px;height:30px">Enviar</button>      
        </fieldset>
  </form>
</div>

<script type="text/javascript">$(document).ready(function() {
$('a.login-window').click(function() {

            //Getting the variable's value from a link 
    var loginBox = $(this).attr('href');

    //Fade in the Popup
    $(loginBox).fadeIn(300);

    //Set the center alignment padding + border see css style
    var popMargTop = ($(loginBox).height() + 24) / 2; 
    var popMargLeft = ($(loginBox).width() + 24) / 2; 

    $(loginBox).css({ 
        'margin-top' : -popMargTop,
        'margin-left' : -popMargLeft
    });

    // Add the mask to body
    $('body').append('<div id="mask"></div>');
    $('#mask').fadeIn(300);

    return false;
});
// When clicking on the button close or the mask layer the popup closed
    $('a.close, #mask').live('click', function() { 
      $('#mask , .login-popup').fadeOut(300 , function() {
        $('#mask').remove();  
    }); 
    return false;
    });
});
</script>

2 个答案:

答案 0 :(得分:1)

你的选择器中有拼写错误;您可能希望将$('a.close, #mask')更改为$('a.closest, #mask')

此外,自jQuery 1.7以来,.live()已被弃用,而是使用.bind()

制作一个JSFiddle:http://jsfiddle.net/fhuNd/

答案 1 :(得分:0)

您没有正确的jquery选择器,即您使用的jquery选择器不指向页面中的任何元素,因此它不起作用。

使用$('a.closest')