使用jQuery,我只是想在鼠标单击图像或周围区域时获取的href。
HTML模板:
但问题是,每当我点击标签内的图片时,我无法获取标签的href属性值,因为它试图从我所点击的图片中获取href属性值而不是标签。但是,如果我点击图片周围的区域,我会得到所需的href属性值。
<nav id="main_nav">
<ul>
<li>
<a href="/" data-path>
<img class="dashboard_icon" src="img/icons/nav/dashboard.svg">
</a>
</li>
</ul>
... more nav options
</nav>
样式:
li { list-style: none; display: block; width: 80px; height: 80px; }
a { display: block; width: 100%; height: 100%; }
img { width: 30px; height: 30px; margin: 25px; }
jQuery:
$(document).on('click', '[data-path]', (e) => {
e.preventDefault();
let target = $(e.target).attr('href');
router.navigate(target);
});
但问题是,每当我点击标签内的图片时,我无法获取标签的href属性值,因为它试图从我所点击的图片中获取href属性值而不是标签。但是,如果我点击图片周围的区域,我会得到所需的href属性值。
尝试:
我进行了更改:
let target = $(e.target).attr('href');
致:
let target = $(this).attr('href');
但是当点击图像或周围区域时,什么都没有发生!
我做错了什么? 我不敢相信自己会问这样简单的问题,但我刚刚停止编码一年,显然错过了一些重要的东西,并且令我困惑。
我希望能够点击 a 内的 everything 并获取
a
的 href
。
<img>
而不是<a>
,则遍历到其父级,然后获取href
? - Alexander Nieddata-path
是一种自定义数据属性(http://html5doctor.com/html5-custom-data-attributes/)。 - Martin James