触发或模拟哈希点击

时间:2014-08-16 10:08:46

标签: javascript jquery skrollr

由于在页面上进行视差滚动而我排队哈希点击时遇到了麻烦,我找到的唯一方法就是可以轻松克服这个问题,如果你点击一个哈希链接,那么它就会被“再次点击”所以它跑了两次。我试过了:

$("a[href*='#']").click( function() {
    $(window.location.hash).click(); 
});

怎么可以这样做?

1 个答案:

答案 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);
});