我的画廊页面刚刚发现了一个问题。 我有 JavaScript 来处理用户菜单选择,但其中一个选项是返回主页,但它不起作用,因为单击事件接管页面上的所有链接,有办法解决这个问题吗?我已经在网上搜索答案,但没有运气,谢谢。
$(document).ready(function() {
LoadGallery($('a[data-albumid]:first').data('albumid'));
$("a").click(function() {
var dir_path = $(this).data("albumid");
LoadGallery(dir_path);
return false;
});
});
<ul id="nav">
<li><a href="#" id="here">Gallery</a>
<ul>
<li><a href="#" data-albumid="images/gallery/fld01/">2014</a></li>
<li><a href="#" data-albumid="images/gallery/fld02/">2014</a></li>
<li><a href="#" data-albumid="images/gallery/fld03/">2014</a></li>
<li><a href="#" data-albumid="images/gallery/fld04/">2015</a></li>
<li><a href="#" data-albumid="images/gallery/fld05/">2015</a></li>
</ul>
</li>
<li><a href="index.html" id="home">Back to home</a></li>
<!-- This one never works! -->
</ul>
最佳答案
您在所有链接上给出了return false
,这使得您的其他“正常”链接不起作用。您可以执行 :not
运算符:
$(document).ready(function() {
LoadGallery($('a[data-albumid]:first').data('albumid'));
$("a:not(#home)").click(function() {
var dir_path = $(this).data("albumid");
LoadGallery(dir_path);
return false;
});
});
或者仅将事件绑定(bind)到href=#
:
$(document).ready(function() {
LoadGallery($('a[data-albumid]:first').data('albumid'));
$('a[href="#"]').click(function() {
var dir_path = $(this).data("albumid");
LoadGallery(dir_path);
return false;
});
});
这样就不会影响其他链接。
关于javascript - 链接上的单击事件,但只有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442175/