gpt4 book ai didi

javascript - 如何为多个元素设置onclick函数?

转载 作者:行者123 更新时间:2023-12-03 11:10:43 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 为我的链接设置 onclick 属性。当用户点击链接时,我想设置一个cookie。

以下是设置 cookie 的代码:

function setCookie(cookieName, cookieValue, cookiePath, cookieExpires){
cookieValue = escape(cookieValue);
if (cookieExpires == "") {
var nowDate = new Date();
nowDate.setMonth(nowDate.getMonth() + 6);
cookieExpires = nowDate.toGMTString();
} if (cookiePath != "") {
cookiePath = ";Path=" + cookiePath;
}
document.cookie = cookieName + "=" + cookieValue +
";expires=" + cookieExpires + cookiePath;
}

function getCookieValue(cookieName)
{
var cookieValue = document.cookie;
var cookieStartsAt = cookieValue.indexOf(" " + cookieName + "=");
if (cookieStartsAt == -1)
{
cookieStartsAt = cookieValue.indexOf(cookieName + "=");
}
if (cookieStartsAt == -1)
{
cookieValue = null;
}
else
{
cookieStartsAt = cookieValue.indexOf("=", cookieStartsAt) + 1;
var cookieEndsAt = cookieValue.indexOf(";", cookieStartsAt);
if (cookieEndsAt == -1)
{
cookieEndsAt = cookieValue.length;
}
cookieValue = unescape(cookieValue.substring(cookieStartsAt,
cookieEndsAt));
}
return cookieValue;
}

现在这是设置 onclick 函数的代码:

var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = setCookie("workshop", elements[i].getAttribute("name"), "", "");
}

我希望将 cookie 值设置为链接的名称。例如,如果我有一个链接 <a href="#" name="test2"> ,我希望将 cookie 设置为“test2”。

但是,使用此代码,cookie 值始终是页面上最后一个 < a > 标记(最后一个链接)的 name 属性。我希望每个链接都有自己的 onclick 函数;并非所有的cookie都设置为相同的值。这样,一旦用户到达下一个屏幕,我就会知道他们点击了哪个链接到达那里。

非常感谢任何帮助!谢谢!

最佳答案

使用 addEventListener() 函数而不是 onclick 事件处理程序。像这样的事情应该做你想要的:

var elements = document.getElementsByTagName('a');
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].addEventListener("click", function() {
setCookie("workshop", this.getAttribute("name"), "", "");
});
}

关于javascript - 如何为多个元素设置onclick函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27609360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com