javascript - jQuery .attr() 返回第一个(错误的)值?

标签 javascript jquery html

基本上我做了一个函数,当你点击 .menu 时在容器 #page 中打开一个页面现在我遇到的问题是它总是显示第一个.menu data-open="url/url.html".

让我用代码解释一下:

我有 2 个列表项:

<li class="menu" data-open="pages/home.html"><a href="#"><div class="wrap">HOME</div></a></li>
<li class="menu" data-open="pages/services.html"><a href="#"><div class="wrap">SERVICES</div></a></li>

我有这样的.click函数:

$("nav ul li.menu").click(function () {
    var url = $("nav ul li.menu").attr("data-open");
    console.log(url);
    loadPage(url)
});

现在无论我是否点击服务,该 url ALWAYS 都会从 FIRST 列表项返回。

这是一个动图:

enter image description here

最佳答案

您需要引用被点击的项目。使用:

var url = $(this).attr("data-open");

代替:

var url = $("nav ul li.menu").attr("data-open");

关于javascript - jQuery .attr() 返回第一个(错误的)值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32505819/

相关文章:

javascript - 如何使文本在 html/javascript 中闪烁?

javascript - 仅允许特定字符集的正则表达式

javascript - 具有恒定纵横比的 JQuery 对话框

javascript - 我怎样才能衡量有多少字符适合文档的宽度?

css - div 彼此相邻

html - 表格表格 html 格式问题

javascript - Jquery 专注于输入字段

javascript - 如何根据行中另一个单元格的内容修改 HTML 表格行的内容?

javascript - 如何根据图像缩放图像 - css

javascript - 如何在 ember.js 中相对于单击操作定位模态