我有一个年份列表,想要选择触发点击的第一个元素,但它没有按我的预期工作。这段代码让我到达我想要触发点击的元素,但它什么也没做,并且控制台中没有错误。
$("#years > span > a").eq(0).trigger("click");
我已将这行代码放在 JavaScript 文件的最后一行,所以我的理解是,在加载所有内容后,应该触发单击。
为什么这没有像我预期的那样工作?
这是我的html:
<div id="years">
<span><a href="#">2023</a></span> <----- This is the one I want
<span>•</span>
<span><a href="#">2022</a></span>
<span>•</span>
<span><a href="#">2021</a></span>
<span>•</span>
<span><a href="#">2020</a></span>
</div>
了解后端正在构建年份列表可能会有所帮助,因此页面加载时 HTML 是完整的。
这是我的点击处理程序:
$("#years > span > a").on('click', function(e) {
e.preventDefault();
$.ajax({
url:'postsByYear.php',
type:"GET",
data:{
year:$(this).text()
},
dataType:"html",
success:function(data)
{
$('#view-posts').fadeOut(500, function() {
$(this).html(data).fadeIn(500);
setMonths();
});
},
error:function(error) {
return alert('System Error');
}
});
});
就我而言,我所要做的就是
trigger
单击ready函数的inside。我在它的“外部”,所以这就是它没有执行的原因。在这种情况下,这是我自己的疏忽。