我的问题刚刚在我的画廊页面上曝光。 我有JavaScript来处理用户菜单选择,但其中一个选项是返回主页,但它没有工作,因为On Click事件接管了页面上的所有链接,有没有办法解决这个问题?我在网上搜索了答案,但没有运气,谢谢。
$(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>
&#13;
答案 0 :(得分:5)
您在所有链接上提供了return false
,这使得您的其他&#34;正常&#34;链接不起作用。您可以: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;
});
});
或者只将事件绑定到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;
});
});
因此它不会影响其他链接。
答案 1 :(得分:1)
为您希望以相同方式运行的链接提供类:
<ul id="nav">
<li><a href="#" id="here">Gallery</a>
<ul>
<li><a href="#" class="mylink" data-albumid="images/gallery/fld01/">2014</a></li>
<li><a href="#" class="mylink" data-albumid="images/gallery/fld02/">2014</a></li>
<li><a href="#" class="mylink" data-albumid="images/gallery/fld03/">2014</a></li>
<li><a href="#" class="mylink" data-albumid="images/gallery/fld04/">2015</a></li>
<li><a href="#" class="mylink" data-albumid="images/gallery/fld05/">2015</a></li>
</ul>
</li>
<li><a href="index.html" id="home">Back to home</a></li>
</ul>
然后像这样更改您的事件绑定:
$(".mylink").click(function() { // do what you want here }
它更干净,并且根据他们的目的使用类。
答案 2 :(得分:0)
另一种方法是unbind
单个<a>
代码的点击事件,
$( 'a[href="index.html"]').unbind( "click" )