<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<title>test trigger</title>
</head>
<body>
<script>
$(document).ready(function(){ // on document ready
$("#testbed").trigger('click'); // click the element
})
</script>
<a id="testbed" href="http://www.google.com">testing</a>
</body>
</html>
我希望此代码在文档准备好后自动单击testbed链接。但是没有点击链接。
答案 0 :(得分:2)
首先你应该知道.trigger()
函数不能用于模仿本机浏览器事件,例如单击文件输入框或锚标记。
$("#testbed").trigger('click'); // it will not change the current page.
你必须使用.simulate()来模仿这样的原生浏览器事件,
$( "a" ).simulate( "click" );
要使用.simulate()
功能,您必须在文件中加入simulate.js
。
你可以参考这个页面, triggering event handelers
答案 1 :(得分:1)
您需要定义点击testbed
$(document).ready(function(){ // on document ready
$("#testbed").click(function(){ // on document ready
alert("clicked");
});
$("#testbed").trigger('click'); // click the element
});
如果您不想拥有点击事件,只想导航到链接的href,那么您可以使用window.location.href = url;
$(document).ready(function(){ // on document ready
window.location.href = document.getElementById("testbed").href;
});
尽可能使用使用本机功能和属性等来获得性能。您可以检查jspref上不同属性访问方法的性能差异。
答案 2 :(得分:1)
触发click
事件。试试例如:
$(document).ready(function(){ // on document ready
$("#testbed").on ('click', function() {
alert('click event');
});
$("#testbed").trigger('click'); // click the element
})
访问href
中的网址的实际操作不会发生。您可以使用window.location
更改页面并绕过jQuery。
答案 3 :(得分:0)
为什么不尝试这个
<script>
$(document).ready(function(){ // on document ready
var url = "http://www.google.com";
window.location.href = url;
})
</script>
答案 4 :(得分:0)
触发器用于执行链接测试平台没有的点击事件。如果要将页面重定向到该链接,为什么不使用window.location.href
window.location.href = $("#testbed").attr('href');
答案 5 :(得分:0)
.click()调用定义的点击功能。它不会模拟用户点击。以下代码应该为您提供所需的功能。
$(document).ready(function(){
//Define click function
$("#testbed").click(function(){
window.location.href = $("#testbed")[0].href;
});
//Trigger the click event.
$("#testbed").trigger('click');
});
答案 6 :(得分:0)
请尝试以下代码:
<script>
$(document).ready(function(){ // on document ready
//Following code simulates a click event
anchorObj = $("#testbed")[0];
var evt = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
anchorObj.dispatchEvent(evt);
});
</script>
这将起作用,因为它模拟锚点上的实际点击事件。但是jQuery click不起作用,因为它只会执行为元素定义的点击处理程序。
答案 7 :(得分:0)
你可以试试这个,
<script>
$(document).ready(function(){ // on document ready
$("#testbed")[0].click(); // click the element
})
</script>