ASP.NET MVC:jQuery函数在母版页中但不在视图页中时工作-为什么?

ASP.NET MVC:jQuery函数在母版页中但不在视图页中时工作-为什么?,jquery,asp.net-mvc,view,Jquery,Asp.net Mvc,View,NETMVC。当我将下面的简单jQuery函数放在母版页中时,它会工作(即单击带有id=“cert button”的输入,用户会看到确认消息)。但是,如果我将其放置在视图页面(.aspx)中的任何位置,则不会触发它。为什么会这样 <script type="text/javascript"> $("#cert-button").click(function () { return confirm("Continue?"); }); </script> $(“#证书按钮

NETMVC。当我将下面的简单jQuery函数放在母版页中时,它会工作(即单击带有
id=“cert button”
的输入,用户会看到确认消息)。但是,如果我将其放置在视图页面(.aspx)中的任何位置,则不会触发它。为什么会这样

<script type="text/javascript">
$("#cert-button").click(function () { return confirm("Continue?"); });
</script>

$(“#证书按钮”)。单击(函数(){return confirm(“Continue?”);});

顺便说一句,我刚刚开始在MVC中使用JavaScript,似乎有些随意,有些东西是否能正常工作。我开始怀疑是否有某种缓存/初始化问题在起作用。

您需要在文档中准备好小狗

<script type="text/javascript">
$(function(){
    $("#cert-button").click(function () { return confirm("Continue?"); });
});
</script>

$(函数(){
$(“#证书按钮”)。单击(函数(){return confirm(“Continue?”);});
});

尝试将其与
ready
事件一起放置,如下所示:

<script type="text/javascript">
$(document).ready(function(){ $("#cert-button").click(function () { return confirm("Continue?"); }); });
</script>

$(文档).ready(函数(){$(“#证书按钮”)。单击(函数(){return confirm(“Continue?”);});});

在HTML中,按钮很可能位于脚本之后,因此在运行脚本时它不存在


正如其他答案所暗示的那样。您可以通过将其放入
$(document).ready()
中来避免这种情况,因此它会等待DOM加载,然后再附加click事件

被引用的元素有什么不同吗?也就是说,
#证书按钮
是否仍然像以前一样存在?此外,您还可以尝试将其包装在
$(document).ready()
中,以确保它在DOM准备就绪之前没有尝试绑定到click事件。谢谢David,$(document).ready()工作正常。一直工作到最后一个分号。非常感谢。