[英]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"> ></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.