由于在页面上进行视差滚动而我排队哈希点击时遇到了麻烦,我找到的唯一方法就是可以轻松克服这个问题,如果你点击一个哈希链接,那么它就会被“再次点击”所以它跑了两次。我试过了:
$("a[href*='#']").click( function() {
$(window.location.hash).click();
});
怎么可以这样做?
答案 0 :(得分:0)
它应该是这样,但它最终会在无限循环中结束
$("a[href^='#']").click( function() {
$(this).trigger('click');
});
最好试试这个:
$("a[href^='#']").on('click', function() {
$(this).off('click').trigger('click');
});
如果您在这些链接上附加了其他点击事件,也可以添加命名空间:
$("a[href^='#']").on('click.mynamespace', function() {
$(this).off('click.mynamespace').trigger('click');
});
编辑:
添加超时将有助于触发两次:
$("a[href^='#']").on('click.mynamespace', function() {
var $self = $(this);
setTimeout(function(){
$self.off('click.mynamespace').trigger('click');
},1);
});