0

我的完整脚本正在运行,但是当我单击 div 时,div 没有隐藏,但我编写了代码来隐藏它....谁能告诉我我在哪里犯了错误。

这是我的代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.lnkcss 
{
    margin-left:350px;
}

.BusyStyles
    {
        background-image: url('images/ajax-loader.gif');
        background-repeat: no-repeat; background-position: center center; 
    }

 #transition {

display:none;
position:absolute; top:50%; left:50%; z-index:50;
border:1px solid #666;
width:100px; height:100px;
}

</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#lnk').click(function (e) {
            $('body').append('<div id="transition"></div>').show();

            var $t = $('#transition'),
            to = $(this).offset(),
            td = $(document);

            //$t.children('div').css({ width: 100, height: 100 });
            $t.css({
                top: to.top + 50,
                left: to.left + 50,
                display: 'block'
            }).animate({
                top: td.height() / 2,
                left: td.width() / 2
            }, 600, function () {
                $(this).animate({
                    top: '-=75',
                    left: '-=50'
                }, 600);

                $(this).animate({
                    width: 250,
                    height: 200
                }, 600, function () {
                    $('#transition').addClass("BusyStyles");

                });
            });
            return false;
        });

        $('#transition').click(function (e) {
            alert('pp');
            $(this).hide();
        });
    });
</script>
</head>
<body>
<form id="form1" runat="server">
<a href="#" id='lnk' class="lnkcss">FeedBack</a>
</form>
</body>
</html>

$('#transition').click(function (e) {
            alert('pp');
            $(this).hide();
        });

我写了上面的行来隐藏 div,但是当我点击 div 时没有任何反应。

4

2 回答 2

1

$('body').append('<div id="transition"></div>')处理文档后将元素添加到页面需要bind any event handlers静态父元素。

$('#transition').click(function (e) {
    alert('pp');
    $(this).hide();
});

应改为

$('body').on('click', '#transition', function (e) {
    alert('pp');
    $(this).hide();
});
于 2012-09-24T19:18:42.557 回答
0

该事件应用于当时存在的每个“#transition”元素,您尝试实例化处理程序。您目前没有这样的元素,因为它是动态创建的。

您可以在创建元素后立即应用事件处理程序:

http://jsfiddle.net/Du5k8/

于 2012-09-24T19:22:42.190 回答