html - 使用 JQuery 对同一元素执行多个函数
问题描述
希望我问得正确;随时纠正。
我有以下代码,它使时间轴在鼠标进入该 div 时出现在我的页面上,并在鼠标离开该 div 到另一个 div 时消失。
var nums = [1, 2, 3, 4, 5];
$(document).ready(function(){
$.easing.easeOutCubic = function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
}
for(i=0; i<=nums.length; i++){
$(".tl-item" + nums[i]).mouseenter(function(){
for(j=0; j <= nums.length; j++){
$(this).find('#timeline'+ nums[j]).stop(true, true).fadeIn(100, 'easeOutCubic');
}
});
}
for(i=0; i<=nums.length; i++){
$(".tl-item" + nums[i]).mouseleave(function(){
for(j=0; j <= nums.length; j++){
$(this).find('#timeline'+ nums[j]).stop(true, true).fadeOut(1000, 'easeOutCubic');
}
});
}
});
我接下来要做的是当时间线可见时单击一年,因此会弹出一个带有图表的模式。我试着先看看代码是否会发生点击事件,但什么也没发生。点击事件未注册的原因可能是什么?
$(document).on('click','.test li', function(){
alert($(this).text());
<div id="timeline1">
<ul class="test">
<!-- <li data-toggle="modal" data-target="#modalnew" data-whatever="1970" class="openmodal"><a >1970</a></li> -->
<li class="active"><a href="" class="timelineYear">1970</a></li>
<li><a href="" class="timelineYear">1971</a></li>
<li><a href="" class="timelineYear">1972</a></li>
<li><a href="" class="timelineYear">1973</a></li>
<li><a href="" class="timelineYear">1974</a></li>
<li><a href="" class="timelineYear">1975</a></li>
<li><a href="" class="timelineYear">1976</a></li>
<li><a href="" class="timelineYear">1977</a></li>
<li><a href="" class="timelineYear">1978</a></li>
<li><a href="" class="timelineYear">1979</a></li>
<li><a href="" class="timelineYear">1980</a></li>
</ul>
</div>
我的 jquery 包位于 body 标签的末尾,并尝试将其移至 head 标签,并尝试将其保留在头部和正文的末尾,但没有运气。此外,我尝试了 console.log 而不是警报,但控制台中没有出现任何内容。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
任何想法都会非常受欢迎。
解决方案
您的点击事件有一些语法错误。我已经为您测试了这一点作为起点。当您开始使用 jQuery 时,我建议您使用今天可用的最新版本 query-3.6.0.min.js 。
<html>
<head>
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
var nums = [1, 2, 3, 4, 5];
//
$(document).ready(function() {
$(document).on('click','.test li', function(){
alert($(this).text());
return false;
});
$.easing.easeOutCubic = function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
}
for(i=0; i<=nums.length; i++){
$(".tl-item" + nums[i]).mouseenter(function(){
for(j=0; j <= nums.length; j++){
$(this).find('#timeline'+ nums[j]).stop(true, true).fadeIn(100, 'easeOutCubic');
}
});
}
for(i=0; i<=nums.length; i++){
$(".tl-item" + nums[i]).mouseleave(function(){
for(j=0; j <= nums.length; j++){
$(this).find('#timeline'+ nums[j]).stop(true, true).fadeOut(1000, 'easeOutCubic');
}
});
}
});
</script>
</head>
<body>
<div id="timeline1">
<ul class="test">
<!-- <li data-toggle="modal" data-target="#modalnew" data-whatever="1970" class="openmodal"><a >1970</a></li> -->
<li class="active"><a href="" class="timelineYear">1970</a></li>
<li><a href="" class="timelineYear">1971</a></li>
<li><a href="" class="timelineYear">1972</a></li>
<li><a href="" class="timelineYear">1973</a></li>
<li><a href="" class="timelineYear">1974</a></li>
<li><a href="" class="timelineYear">1975</a></li>
<li><a href="" class="timelineYear">1976</a></li>
<li><a href="" class="timelineYear">1977</a></li>
<li><a href="" class="timelineYear">1978</a></li>
<li><a href="" class="timelineYear">1979</a></li>
<li><a href="" class="timelineYear">1980</a></li>
</ul>
</div>
</body>
</html>