簡體   English   中英

動畫函數jQuery運行兩次

[英]Animate function jquery running twice

伙計們,我花了很長時間在這段代碼上費勁了。 對於我的一生,我無法弄清楚為什么每次單擊鏈接時它都會運行兩次。 任何人都可以看看我的代碼,並告訴我為什么這樣做嗎?

<script type='text/javascript'>//<![CDATA[ 

$(function(){

function scrollToAnchor(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({scrollLeft: aTag.offset().left}, "slow", function() { console.log("test"); } );
};

$(".forward").click(function() {
    var div_name = $(this).attr("href");
    scrollToAnchor(div_name);
});

});//]]>

HTML

<div class="next">
    <span style="font-size:48px;"><a class="forward" href="#id2">&nbsp;></a></span>
</div>

CSS

.next{
    position:fixed;
    padding:10px;
    background: rgba(0,0,0, 0.6);
    top:48%;
    right:0;
    text-shadow: 1px 1px 1px #000;
    z-index:201;
}
.next a{
    text-decoration:none;
    color:white;
}
.next a:hover{
    text-decoration:none;
    color: red;
}

每次您單擊“轉發”時,它只應將“測試”登錄一次到控制台,但它將登錄兩次。

只需添加我的評論作為其他具有相同問題的答案:

$('html,body').animate({scrollLeft: aTag.offset().left}, "slow", function() { console.log("test"); } );
};

$('html,body')導致html標簽和body標簽被動畫化,因此動畫似乎運行了兩次。 只需將其更改為$('body')即可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM