你每次滚动的窗口,这就是为什么你的例子不工作时安装新的单击事件侦听器。
相反,尝试这样的:
var $collection = $("#treest").add("#treest2").add("$treest3");
$(window).scroll(function() {
if ($(this).scrollTop() > 200) {
// Removes click event listener
$collection.off('click'));
}
else {
// Check if a click event listener is attached, and if not, attaches a new one
if(!$collection.data('events').click.length) {
$collection.click(function() {
anim10();
});
}
}
});
此外,而不是执行数十个函数调用每次滚动的窗口和安装时间/拆卸点击事件监听器,它是更好的性能明智的离开点击监听器那里,只是验证它在每次调用(如@Milind在他的回答曾建议):
var $collection = $("#treest").add("#treest2").add("$treest3");
$collection.click(function() {
if ($(window).scrollTop() <= 200)
anim10();
});
'语法错误:意外的令牌)' – Musa
你每次连接几十个点击的事件监听器滚动你的窗口。 – user1853181