为什么我的jquery脚本不起作用?

时间:2014-02-17 08:24:43

标签: javascript jquery

我编写了一个脚本,它从一个方法中获取数据(以Json类型)并使用关闭按钮显示在div标签中,当我点击关闭按钮时它不起作用!我的剧本是:

 $(document).ready(function () {
        $("#go").click(function () {
            setInterval(function () {
                $.ajax({
                    type: "POST",
                    url: "WebForm2.aspx/GetMyBooks",
                    data: '{}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {

                        for (var i = 0; i < response.d.length; i++) {
                            $("#pejiGrid").append("<div class='modal'><div style='float:left;'><span class='close'>X</span></div>" + response.d[i].BOOK_NAME + "<br/>" + response.d[i].BOOK_DESC + "</div><br/>");
                        };
                    },
               });
                $('.modal').hover(
                    function () {

                        $(this).find('.close').delay(0).fadeIn(300);

                    },
                     function () {

                         $(this).find('.close').delay(0).fadeOut(500);
                     });

            }, 5000);
        });

        $('span.close').click(
            $(this).closest('div.modal').fadeOut(0)
            );
       });

有什么问题?

编辑:关于我的悬停脚本,我应该说它显示延迟关闭按钮,但我给零延迟值:

 $('.modal').hover(
                    function () {

                        $(this).find('.close').delay(0).fadeIn(300);

                    },
                     function () {

                         $(this).find('.close').delay(0).fadeOut(500);
                     });
有些人可以帮助我解决问题吗?

1 个答案:

答案 0 :(得分:4)

您需要在此使用event delegationclick事件绑定到div内动态创建的span#pejiGrid元素:

$('#pejiGrid').on('click', 'span.close', function() {
    $(this).closest('div.modal').fadeOut(0);
});