Javascript 在页面加载时单击页面上的元素
因此,我使用的是Squarespace模板,我认为实现某种行为的最简单方法(基本上显示一个div,该div通常在点击横幅之前保持隐藏)是假装点击横幅本身 我这里有两个问题:Javascript 在页面加载时单击页面上的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我使用的是Squarespace模板,我认为实现某种行为的最简单方法(基本上显示一个div,该div通常在点击横幅之前保持隐藏)是假装点击横幅本身 我这里有两个问题: 由于ID似乎每次都会部分更改,因此无法一致地挑出特定的元素。所以我需要基本上得到这个类中出现的第一个元素和其中的锚标记 在所有的嵌套中,我不确定到底需要单击什么。是div,还是锚定标签,还是什么 代码如下: <div class="item sqs-gallery-design-autocolumns-slide" i
<div class="item sqs-gallery-design-autocolumns-slide" id="someidthatchanges" data-type="image" style="top: 0px; left: 0px; width: 1440px; height: 514px;" overlaydelay="236">
<a href="thelink" data-dynamic-load="" data-dynamic-receiver="#somestuff" id="idthatchanges">
<div class="wrapper" id="idthatchanges">
<div class="project-title" id="idthatchanges">
<h2 id="idthatchanges">+</h2>
<h3>— view —</h3>
</div>
</div>
<img src="someUnimportantImage.gif"/>
</a>
</div>
上述操作在控制台中也不起作用(即使ID正确),但不会给出任何错误,因此它似乎是某种类型的目标问题
有什么想法吗?调用.trigger('click')
或jQuery的.click()
方法实际上不会触发锚的默认单击行为(它只触发与jQuery和内联单击处理程序绑定的事件处理程序)。您可以通过调用DOM元素的本机。而不是单击()
方法来解决这个问题
将其与您关于将第一个元素作为类的目标的注释放在一起:
$("document").ready(function() {
$('.sqs-gallery-design-autocolumns-slide:first a')[0].click();
});
我不确定到底需要点击什么。是div,还是锚定标签,还是什么
所显示的HTML没有任何内联事件处理程序,因此我们无法确定应该以哪个元素为目标。除了逻辑上它应该是锚,因为只有键盘用户才能“单击”。调用.trigger('click')
或jQuery的。click()
方法实际上不会触发锚的默认单击行为(它只触发与jQuery和内联单击处理程序绑定的事件处理程序)。您可以通过调用DOM元素的本机。而不是单击()
方法来解决这个问题
将其与您关于将第一个元素作为类的目标的注释放在一起:
$("document").ready(function() {
$('.sqs-gallery-design-autocolumns-slide:first a')[0].click();
});
我不确定到底需要点击什么。是div,还是锚定标签,还是什么
所显示的HTML没有任何内联事件处理程序,因此我们无法确定应该以哪个元素为目标。除了逻辑上它应该是锚,因为这是只有键盘用户才能“点击”的东西。也许你想要的是这样的东西
$(document).ready(function(){
$(".item.sqs-gallery-design-autocolumns-slide").find("a").click();
})
也许你想要的是这样的东西
$(document).ready(function(){
$(".item.sqs-gallery-design-autocolumns-slide").find("a").click();
})
真管用!但只在控制台中。我试着在页眉和页脚中都使用这一行,甚至给它一个延迟,但它似乎不起作用。我怀疑这是因为加载元素的顺序,但我认为将它放在页脚中可以解决这个问题。如果您尝试单击的元素是动态创建的,那么它可能还不存在。如果你给它一个很长的延迟,它仍然不工作,那么我不知道元素是从哪里来的。3秒的延迟工作,但这看起来有点业余。有没有什么方法可以在加载整个页面时运行这行代码,而不是给它一个固定的超时时间?这很有效!但只在控制台中。我试着在页眉和页脚中都使用这一行,甚至给它一个延迟,但它似乎不起作用。我怀疑这是因为加载元素的顺序,但我认为将它放在页脚中可以解决这个问题。如果您尝试单击的元素是动态创建的,那么它可能还不存在。如果你给它一个很长的延迟,它仍然不工作,那么我不知道元素是从哪里来的。3秒的延迟工作,但这看起来有点业余。是否有某种方法可以在加载整个页面时运行该行代码,而不是给它一个固定的超时时间?