窗口应该在点击时关闭,而是立即关闭

时间:2018-06-15 22:07:50

标签: javascript jquery html window

当用户点击“关闭”链接时,该窗口应该关闭。相反,它会在打开后立即关闭。这是怎么回事?

<!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! -->

2 个答案:

答案 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方法。它虽然有clickon。因此,您必须编写$(...).onClick(...)$(...).click(...)来代替$(...).on('click', ...),以获得正确的方法调用。

原始答案的另一个问题是作为onClick的参数传递的是this.window.close()。但是,必须在调用函数之前评估参数,并且this.window.close()被评估为函数调用,因为它就是这样。因此,只要脚本执行,就会调用this.window.close。你想要的是() => this.window.close(),它被评估为匿名函数而不是函数调用。

将这两个不同问题的解决方案放在一起,最终会得到类似$(...).on('click', () => this.window.close())的内容。