Javascript隐藏DIV,单击按钮

时间:2016-06-01 22:22:31

标签: javascript jquery

你好Stackers,

我还有另一个问题。这是Javascript(再次)。我一直在制作"警报"在我的网页上。它们包含一个按钮,我想在单击按钮时关闭它们。但是,这似乎不起作用。我已在控制台中记录了点击次数,并记录了点击次数。点击确实发生了。

警报会在几秒钟后隐藏。当我用" Devtools"改变风格时Chrome使其再次可见,然后单击按钮,DIV确实消失了。

为什么点击不会隐藏我的div?

的Javascript

var messageId = 0;

    var alerty = function(type, title, content) {
        messageId++;
    var html = ' <div class="alert" id="a-' + messageId + '"><div class="topview ' + type + '"></div><div class="title">' + title +'</div> <div class="text">' + content +'</div> <input type="button" id="close-'+ messageId + '" class="inputbutton-empty ' + type + '2 button close" value="Meldung schlie&szlig;en"></div>'
    $(html).hide().appendTo("#alertcontainer").fadeIn("fast");
    $(".alert").delay(8000).fadeOut();
    $("#close-" + messageId ).click(function() {
        console.log("XTM: Pushed Alerty alert closed on request.");
        $("#a-" + messageId ).hide("fade", "fast");
    });
}

提前致谢, 帕斯卡

2 个答案:

答案 0 :(得分:0)

可能是delay()阻止了您hide()的通话。尝试在关闭函数中首先清除队列:

$("#close-" + messageId ).click(function() {
        console.log("XTM: Pushed Alerty alert closed on request.");
        $("#a-" + messageId ).stop().hide("fade", "fast");
    });

答案 1 :(得分:0)

这可能是因为您需要使用.on代替.click.

.on用于新创建的DOM元素,您使用的是html。

请参阅: jQuery function not binding to newly added dom elementshttp://api.jquery.com/on/