2011-04-06 46 views
0

ASP.NET MVC。当我将下面的简单jQuery函数放置在母版页中时,它可以工作(即点击一个带有id="cert-button"的输入并且用户看到一条确认消息)。但是,如果我将它放在视图页面(.aspx)的任何位置,则不会触发它。为什么会这样呢?ASP.NET MVC:jQuery函数放置在母版页但不在视图页中时工作 - 为什么?

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

P.S.我刚刚开始使用MVC中的JavaScript,看起来有点杂乱无论是否有效。我开始怀疑游戏中是否存在某种缓存/初始化问题。

+0

被引用的元素有什么不同吗?也就是说,'#cert-button'仍然像以前一样存在吗?另外,你也可以尝试将它包装在'$(document).ready()'中,以确保它没有在DOM准备好之前尝试绑定到click事件。 – David 2011-04-06 19:05:56

+0

感谢David,$(document).ready()工作。 – itopica 2011-04-06 21:57:17

回答

1

您需要将该小狗包装在文档中准备就绪!

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

谢谢,就是这样。 – itopica 2011-04-06 21:55:41

0

尝试把它与一个ready事件,像这样:

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

完美地工作,直到最后一个分号。谢谢! – itopica 2011-04-06 21:54:49

+0

您可以接受它作为最佳答案...作为奖励;) – 2011-04-07 06:17:14

0

最有可能您的按钮被放置在HTML脚本后,所以当你运行该脚本它不存在。

正如其他答案所暗示的。您可以通过将其放入$(document).ready()中来避免这种情况,因此它会在加载DOM之前等待,直到它附加单击事件。

+0

谢谢,就是这样。 – itopica 2011-04-06 21:55:13

相关问题