你好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ß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");
});
}
提前致谢, 帕斯卡
答案 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 elements 和 http://api.jquery.com/on/