【发布时间】:2022-01-12 10:43:36
【问题描述】:
我正在尝试使用 css 和 div in this answer 创建通知。
但我需要多个通知,所以我序列化了 div 的 id。
问题是,当我声明 click 函数时,变量 nname 不会被评估 - 只有当我点击关闭按钮时才会评估它。所以只有最后一个通知被忽略了。
如何使用变量“nname”的值声明函数?
我找到了a similar post,但它是关于 zsh 的。
nc = 0;
function show_notification(data){
nname = "notification_" + nc
$('body').append('<div id="' + nname + '" class="notification" style="display: none;"><span class="dismiss"><a title="dismiss notification">x</a></span></div>');
$('#' + nname).fadeIn("slow").append('some new information');
$('#' + nname + ' .dismiss').click(function(){$("#" + nname).fadeOut("slow");});
nc++;
}
【问题讨论】:
-
我无法解决您描述的主要问题。您还在寻找其他解决方案吗?
-
您需要的 SO 问题是:how do closures work
-
但是,在这种情况下,您不需要
id并且增量 ID 是您将受益的拐杖。在这种情况下,更改为 .appendTo 然后您将获得对新元素的引用,而无需重新选择它。事件委托将使用this和 DOM 导航来处理解雇。鉴于有限的代码/没有 html,很难准确(编辑:它是`.notification) -
所需的html在附加代码中给出。
-
是的,刚刚意识到复制到小提琴时 - 没有看到它,因为它被滚动到一边
标签: jquery function variables declaration