我很难搞清楚我在这段代码中遇到了什么样的问题。此代码采用通过Ajax收集的一系列链接。每次用户搜索新术语时,linksArr都会填充新的链接,链接按钮将打开新的链接集。
populateLinks = function (linksArr){
// linksArr contains links from Ajax search
linksArr.forEach(function(link,index){
// Add on click handler to each link button
$('.linkButton' + [index]).on("click", function(){
window.open(link, "_blank");
})
});
};
第一组链接完美无缺。在传递给函数的任何后续链接数组之后出现问题。当一个新的链接数组传递给该函数时,单击一个链接按钮后,window.open()将引用并打开传递给linksArr的第一个链接数组,然后立即 < strong>在之后,它将打开最近传递给函数的当前链接。
我很困惑这个问题是什么。我认为由于使用了forEach功能,这可能是一个关闭的问题,但是几个小时之后我就无法弄清楚了。
这看起来似乎是一个简单的问题,也许我忽视了一些事情。我很想知道window.open打开的链接究竟发生了什么,为什么以前传递的链接(当新链接填充时它们甚至在linksArr中都没有)正在打开之前当前,最近传递的是linksArr。
中的链接答案 0 :(得分:1)
on
没有替换 click
处理程序。 添加点击处理程序。
您可能想要说.off("click").on("click", function () { ... })
。