所以我想要做的是当我点击一个按钮时,它会将这个点击事件传递给网页中的另一个元素,或者你可以说它会在另一个元素中创建一个新的点击事件。下面是我的代码,它不起作用,请让我知道它有什么问题,看起来很有意义......
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker" onClick=alert("error") /></p>
<button type="button" value="submit" onClick="document.getElementById("datepicker").click()">submit </button>
</body>
</html>
答案 0 :(得分:38)
由于你使用的是jQuery,你可以使用这个调用click
的onClick处理程序:
$("#datepicker").click()
这与$("#datepicker").trigger("click")
相同。
对于免费jQuery版本,请查看this answer on SO。
答案 1 :(得分:10)
要模拟事件,您可以使用trigger
JQuery functionnality。
$('#foo').on('click', function() {
alert($(this).text());
});
$('#foo').trigger('click');
答案 2 :(得分:5)
解决此问题的最小变化是更改
onClick="document.getElementById("datepicker").click()">
到
onClick="$('#datepicker').click()">
click()
是一个jQuery方法。此外,用于HTML元素属性的双引号与用于JavaScript函数参数的双引号之间存在冲突。
答案 3 :(得分:2)
你的代码没有按照你期望的方式工作的原因是因为这一行:
<button type="button" value="submit" onClick="document.getElementById("datepicker").click()">submit </button>
应更改为:
<button type="button" value="submit" onClick="document.getElementById('datepicker').focus()">submit </button>
这里有两点需要注意:
1:"
周围的datepicker
已更改为'
,因此它们不会干扰onclick
事件周围的引号。
2:click()
已更改为focus()
以激活日期选择器日历。按下按钮时。
现在,这解决了您的问题...但我同意其他帖子使用jQuery访问DOM元素并触发事件是更好的方法。由于您已经通过<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
为jQuery datapicker插件执行此操作,因此这应该不是问题。
不建议使用内联事件。
答案 4 :(得分:1)
答案 5 :(得分:1)
试试这个
document.getElementById("datapicker").addEventListener("submit", function())
答案 6 :(得分:0)
使用此
jQuery("input.second").trigger("click");