【发布时间】:2019-06-22 20:08:03
【问题描述】:
我目前正在开发一个网站,该网站有一个注销按钮,只要窗口达到特定大小,该按钮就会动态插入到侧边栏中。当我点击注销按钮时,我想调用方法logOut();
我查看了这些其他帖子,但这些解决方案似乎对我不起作用。如果我在主页上单击该元素,则会调用该方法,但是当我调整窗口大小并且该元素被“重新添加”到网页时,它不会做任何事情(ID 选择器是正确的,因为风格就在那里)。
$(document).ready(function()
{
$(document).on("click", "#btnLogOut", function()
{
logOut();
});
});
我希望在单击锚标记后调用 logOut() 方法,但即使 .on() 方法应该处理动态创建的元素,它也不会做任何事情
编辑:这就是我在调整大小后将元素重新添加到页面的方式。包含注销锚标记的 nav 元素通过navList(); 方法制成列表,然后附加到正文。我确保指定注销按钮需要保留其 ID。只会添加与注销按钮相关的代码。
$.fn.navList = function() {
var $this = $(this);
$a = $this.find('a'),
b = [];
$a.each(function() {
var $this = $(this),
indent = Math.max(0, $this.parents('li').length - 1),
href = $this.attr('href'),
target = $this.attr('target');
if($a.attr("id") === "btnLogOut") {
console.log($a);
b.push(
'<a ' +
'id="btnLogOut" ' +
'class="link depth-' + indent + '"' +
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
'>' +
$this.text() +
'</a>'
);
}
});
return b.join('');
};
$(
'<div id="navPanel">' +
'<nav>' +
$('#btns').navList() +
'</nav>' +
'</div>'
)
.appendTo($body)
【问题讨论】:
-
请展示你是如何制作元素的。
-
您是否在复制 ID?
-
@zero298 我刚刚编辑了问题以显示元素是如何制作的。