.click()在页面加载时不起作用但在控制台

时间:2016-09-17 01:31:15

标签: javascript jquery html css javascript-events

这是我的代码:

<script>
  document.getElementById("test").click();
</script>

是否有理由不触发click();在页面加载,但当我在Firefox的控制台中这样做时,它的工作原理。为什么这样,我该如何解决?

编辑:我也试过这个:

<script>
  $(document).ready(function() {
    $('#test').trigger('click');
 });
</script>

仍然不起作用......

3 个答案:

答案 0 :(得分:3)

由于您还没有发布整个页面,我认为最高的概率是&#34; test&#34;执行脚本时不加载元素。如果您想确保脚本被执行,您应该使用

$( document ).ready(function() {
    $("#test").click();
});

工作示例:

</!DOCTYPE html>
<html>
<head>
    <title>Test Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript">
        function printTest() {
            alert('test')
        }
    </script>
</head>
<body>
<script type="text/javascript">
    $( document ).ready(function() {
        $("#test").click();
    });
    // document.getElementById("test").click();
</script>
<button id="test" onclick="printTest()"> Click Me</button>
</body>
</html>

答案 1 :(得分:0)

如果没有看到你的其余代码,我需要在这里猜测。鉴于您的代码在文档中失败,但在页面加载后输入控制台时按预期运行,假设DOM还没有完成加载,这是相当安全的。

为了解决这个问题,我们将一个函数附加到window对象的load事件中。一旦加载并解析了HTML / CSS / JS文件,就会触发该事件。我们通过找到并单击所需按钮来处理该事件。

&#13;
&#13;
window.addEventListener('load', onDocLoaded, false);

function onDocLoaded(evt)
{
  document.getElementById('test').click();  
}
&#13;
<button id='test' onclick='alert("you clicked the test button");'>Click me</button>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

请记住,包括jquery库,因为你做其他人。 这个jquery google CDN提供了jquery online cdn的不同版本。使用其中之一,希望以下对您有所帮助。

参考这个工作演示。 ....

<html>
<head></head>
<title></title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<style>
#mybutton{
	width: 100px;
	height: 50px;
	color: white;
	background-color: orange;
	border: 0;
	border-radius: 5px;
	font-family: monospace;
	cursor: pointer;
}

</style>

<body>

<button id="mybutton">Click me to see th alert</button>



<script type="text/javascript">

$("#mybutton").click(function(){
	alert("jquery and click event is working fine. ...");
});


</script>
</body>

</html>