2014-11-08 56 views
1

任何嵌入视图的javascript都不会触发。一个虚拟的示例代码MVC 5 javascript not firing

<a href="javascript:getView();" name="something" id="something">click me </a> 

<div id="AddAY"></div> 


<script type="text\javascript"> 
    function getView() 
    { 
       $('#AddAY').load('/schools/details/2'); 
    }; 


</script> 

当页面呈现的结果是:

<a href="javascript:getView();" name="something" id="something">click me</a> 

<div id="AddAY"></div> 


<script type="text\javascript"> 
    function getView() 
    { 
       $('#AddAY').load('/schools/details/2'); 
    }; 


</script> 


    <script src="/Scripts/jquery-2.1.1.js"></script> 

    <script src="/Scripts/jquery-ui-1.11.1.js"></script> 

    <script src="/Scripts/bootstrap.js"></script> 
<script src="/Scripts/respond.js"></script> 

,当你点击链接,它什么都不做。

+0

应jQuery的源代码的函数之前宣布这个:?$(‘#AddAY’ ).load('/ schools/details/2');直到这个(和其他文件)被渲染。 – 2014-11-08 08:14:50

+0

@ADASein编号'getView'仅在链接被点击时调用。 – dfsq 2014-11-08 08:54:43

+0

这是基本的Web编程:将jQuery库移动到顶部,以便浏览器可以解析该函数​​。 – 2014-11-08 08:58:05

回答

0

感谢所有为有用的提示。我会考虑写出更好的代码。但经过两天的努力,结果竟然是一个愚蠢的TYPO。

我的方式发现它可能对其他人有帮助。

我把代码放在另一个项目中,javascript被解雇了。只是为了排除(虽然我没有线索),但这并不是我项目中的某种配置问题。

在另一个项目中,它确实触发了,这让我相信它实际上是一个配置问题。 :-(并发送给我错误的轨迹

我最终将两个屏幕上的代码逐行比较,逐行比较输出(html页面的源代码),但没有找到任何不同之处,直到在某个特定的时刻,我注意到在一个项目中比另一个项目更富有色彩,这是一个重要的暗示,可能我认为“为什么智能感知不会回升?”而且我得出的结论是“ 。因为IntelliSense不知道它的JavaScript”然后我注意到愚蠢TYPO A \它应该是/

<script type="text\javascript"> 
<script type="text/javascript"> 
+0

你可以完全删除'type'并且仍然可以工作。 – beautifulcoder 2014-11-09 03:09:36

+0

thx的提示 – BrilBroeder 2014-11-09 11:23:18

0

而不是把锚标记的HREF你的函数(JavaScript的:getView();)的值与此替换代码:

<a href="#" name="something" id="myFunction">click me </a> 
 

 
<div id="AddAY"></div> 
 

 

 
<script type="text\javascript"> 
 
    
 
    $('#myFunction').click(function(){ 
 

 
     $('#AddAY').load('/schools/details/2'); 
 
    
 
    }); 
 
    
 

 

 
</script>

jsfiddle demo