Jquery 如何调试此单击处理程序为何从不触发?

Jquery 如何调试此单击处理程序为何从不触发?,jquery,json,debugging,firebug,handler,Jquery,Json,Debugging,Firebug,Handler,我将在这里详细介绍。我在Max OSX上使用Firefox 3.6.3和Firebug 1.5.3 我有两个版本的项目,一个正常工作,另一个有bug。一个是我下载的,一个是我手工打字的。猜猜哪一个不行。它们应该是相同的,只是我的使用了较新版本的jQuery,并且文件的名称不同。jQuery版本不是问题所在。我让我的使用旧的jquery,让工作的使用新的jquery。不管怎样,我的还是坏了,下载的那个也能用。我拼命想看看这些项目有什么不同。我唯一不想做的事情就是将工作代码复制到损坏的代码中,因为我

我将在这里详细介绍。我在Max OSX上使用Firefox 3.6.3和Firebug 1.5.3

我有两个版本的项目,一个正常工作,另一个有bug。一个是我下载的,一个是我手工打字的。猜猜哪一个不行。它们应该是相同的,只是我的使用了较新版本的jQuery,并且文件的名称不同。jQuery版本不是问题所在。我让我的使用旧的jquery,让工作的使用新的jquery。不管怎样,我的还是坏了,下载的那个也能用。我拼命想看看这些项目有什么不同。我唯一不想做的事情就是将工作代码复制到损坏的代码中,因为我需要能够找出这些东西,因为这是我自己独特的代码导致的类似问题

在我的代码中,我在Firebug中看不到任何错误,事实上,它的2/3工作得很好。只需第二个按钮什么也不做。所以我想跨过去。这些都是眼球的错误,我真的很讨厌看到它们

我把它放在公共服务器上。我想调试ex71.js

如果在ex71.js的第13行设置一个断点,当您单击第二个按钮时,变量json具有预期的值。但如果你把这只放在火虫身上,它就永远不会到达那里。我已经浏览了html,所有东西的名称似乎都匹配。我还想知道为什么按钮没有正确对齐,但这是css的事情。请告诉我我遗漏了什么,更重要的是,我可以使用什么工具/技术来发现这些类型的bug

来自api.jquery:

例如,JSON中表示的所有字符串,无论是属性还是值,都必须用双引号括起来。有关JSON格式的详细信息,请参阅http://json.org/.


您确定传入的数据在语法上是准确的吗?

我认为您使用的函数需要JSONP。这就是回调=?表示无论如何。你试过不说了吗

$.getJSON('ex71.json', function(json) {
    $('input#tmpTitle').val(json.title);
    $('input#tmpCompany').val(json.company);
}); 
文档的这一页在一个注释中解释了回调=?可以用于跨域调用所需的JSONP。如果您没有进行跨域呼叫,则不需要它。如果要进行跨域调用,则需要返回JSONP而不是常规JSON(这实际上比听起来容易得多)


Nope::
{公司:'Springfield Electronics',标题:'Chief Widget Maker'}
BINGO!哦,我得再多打字一点。从一个版本的jQ到另一个版本,这是一个奇怪的小变化。很高兴它帮了你。我取消了回拨=?那是因为我认为新的jQuery需要它。但是没有快乐。至于引号,工作示例在json文件中的值周围有单引号,而键周围没有引号。无论如何,我在服务器上将它们更改为双精度,包括键和值,这样就解决了问题。我要花很多时间才能弄明白这一点,我再也不会在json文件中留下双引号了。谢谢你的回答,这两个假设都很好。@tixrus:我不知道你用什么(服务器端技术)来创建JSON文件(我怀疑你在示例中手动创建了文件),但至少PHP的
JSON\u encode
生成了有效的JSON: