document.click()无法正常工作?

时间:2018-08-06 11:00:31

标签: javascript html dom javascript-events

使用.click()方法单击DOM按钮。但是它无法自行记录文件。

/* Working fine */
function getAlert() {
    alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()

/* Should be work  */
document.onclick = getAlert;
document.clicked()
<button id="btn">Click Me!</button>

请帮助。

4 个答案:

答案 0 :(得分:5)

document对象不是可以单击的对象。

事件处理程序可以绑定到document,事件会冒泡直到到达document并触发处理程序,但是您不能直接单击document。 / p>

答案 1 :(得分:3)

document.getElementById('btn')在文档中找不到此ID,因此,请添加元素ID并删除document.clicked(),因为它不是文档对象上的功能。

在这里,请检查工作代码段。

/* Working fine */
function getAlert() {
    alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()

/* Should be work  */
document.onclick = getAlert;
//document.clicked()
<button id="btn">Click Me!</button>

答案 2 :(得分:1)

正如昆汀已经在回答中解释的那样,无法单击document对象。

document上关联的事件处理程序由于事件使DOM冒泡而执行。例如,片段中按钮上的click事件会遍历按钮->然后是正文->然后是文档。

因此,作为您尝试提问的document.clicked()的替代方法,您可以通过bodydocument.body.click()元素上触发事件。

/* Working fine */
function getAlert() {
    alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()

/* Should be work  */
document.onclick = getAlert;
document.body.click()
<button id="btn">Click Me!</button>

您可以在此处了解有关事件冒泡的更多信息:What is event bubbling and capturing?


注意:我已将ID属性添加到代码段中的按钮上,以确保其运行。

答案 3 :(得分:-2)

您可以使用jquery这样操作:

$(document).on('click', ()=>{console.log('clicked')})

$(document).click()