当用户点击“关闭”链接时,该窗口应该关闭。相反,它会在打开后立即关闭。这是怎么回事?
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<style>
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
p {
text-align: center;
}
</style>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
</head>
<body>
<img src = "assets/images/trophy.png"></img>
<p>YAY! U R TEH WINZ!</p>
<p><a href = "#" class = "exit">Close.</a></p>
<script>
$(".exit").onClick(this.window.close());
</script>
</body>
</html>
<!-- UGH, what is going on? Either clicking takes you nowhere, or it happens
right on load! -->
答案 0 :(得分:0)
jQuery中没有onClick事件。 因此,您将在控制台中收到以下错误:
Uncaught TypeError: $(...).onClick is not a function
jQuery .click()事件 - Click Here
您的活动应如下:
$(".exit").click(function(){
window.close();
});
答案 1 :(得分:0)
正如@Ankit Rajput在另一个回答中所提到的,jQuery没有onClick
方法。它虽然有click
和on
。因此,您必须编写$(...).onClick(...)
或$(...).click(...)
来代替$(...).on('click', ...)
,以获得正确的方法调用。
原始答案的另一个问题是作为onClick
的参数传递的是this.window.close()
。但是,必须在调用函数之前评估参数,并且this.window.close()
被评估为函数调用,因为它就是这样。因此,只要脚本执行,就会调用this.window.close
。你想要的是() => this.window.close()
,它被评估为匿名函数而不是函数调用。
将这两个不同问题的解决方案放在一起,最终会得到类似$(...).on('click', () => this.window.close())
的内容。