2011-04-15 100 views
1

我点击<img>标记实施了简单的JQuery.GetJSON方法。问题是Internet Explorer正在抛出异常,该方法名未定义。未找到javascript方法“方法名称”未定义

任何人都可以指导我这个。

HTML:

<div class="itemgenerate"> 
    <img src="/images/generate.png" onclick="sendJSONRequest()" style="cursor: pointer;" /> 
</div> 
<div id="divTarget" class="itemtext"> 
    <p id="pStuff"></p> 
</div> 

Java脚本:

<script language="javascript" type="text/javascript" src="/Scripts/jquery-1.4.1.js" /> 
<script language="javascript" type="text/javascript"> 
    function sendJSONRequest() { 
     $.getJSON("/Home/Generate", $('#text1').val(), function (data) { 
      $('#pStuff').text(data.Stuff); 
     }); 
    } 
</script> 

如有任何人都可以给我解释一下什么是错在这里:

+0

尝试用'onClick =“javascript:sendJSONRequest();”' – diEcho 2011-04-15 11:01:06

+0

IE说哪一行? – 2011-04-15 11:01:13

+0

我试过调试javascript,它指向''标签的行 – 2011-04-15 11:07:44

回答

4

script标签不能自闭。你需要关闭script标签:

<script language="javascript" type="text/javascript" src="/Scripts/jquery-1.4.1.js"></script> 

您当前的语法是指第一个脚本标签将不会被关闭,其内容将被视为第一的一部分。由于第一个标签具有src属性,因此其内容将被忽略,因此您的功能将不会被定义。

+0

我已经看到jquery已加载。使用这个 2011-04-15 11:09:26

+0

由于上面提到的答案,问题已解决。虽然jQuery在启动时已成功加载,但不知道为什么?:( – 2011-04-15 11:13:18

+0

@Naveed来自[MDC](https://developer.mozilla。 org/En/HTML/Element/Script):“必须同时具有开始标记和结束标记”我的回答是错误的:jQuery加载,但标记的内容不对。 – lonesomeday 2011-04-15 11:14:35

1

这不是标签中使用onclick=的JQuery方式;使用JQuery的一个要点是允许你将脚本代码从HTML标记中抽象出来。所以你会用这样的代替:

$(document).ready() { 
    $('#myimage').click(sendJSONRequest); 
} 
+0

+1一个很好的观点,虽然这里不是问题。 – lonesomeday 2011-04-15 11:16:13

+0

@lonesomeday - 你是对的,不是对实际问题的回答。尽管如此,太多的信息不适合评论。也就是说,如果问题出在他的''标签上,那么改用这种技术就可以解决这个问题。 – Spudley 2011-04-15 11:22:33