3

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

我有一个项目的两个版本,一个可以工作,一个有错误。一个是我下载的,一个是我手写的。猜猜哪个不起作用。它们应该是相同的,除了我的使用更新版本的 jQuery 并且文件命名不同。jQuery 版本不是问题。我让我使用较旧的 jquery,而我让工作的 jquery 使用较新的 jquery。无论哪种方式,我的仍然坏了,下载的仍然有效。我拼命想看看这些项目有什么不同。我唯一不想做的就是将工作代码复制到被破坏的代码中,因为当我自己的唯一代码导致类似问题时,我需要能够弄清楚这些东西。

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

我把它放在公共服务器上。 http://colleenweb.com/jqtests/ex71.html 我想调试 ex71.js

如果您触发工作的一个并在 ex71.js 的第 13 行设置一个断点,则当您单击第二个按钮时,变量 json 具有预期值。但是,如果您使用这个萤火虫,它永远不会到达那里。我已经浏览过 html 并且所有内容的名称似乎都匹配。我也想知道为什么按钮不正确,但那是 css 的事情。请告诉我我缺少什么,更重要的是,我可以使用什么工具/技术来查找这些类型的错误。

4

2 回答 2

3

来自 api.jquery:

For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.

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

于 2010-04-08T19:37:46.807 回答
1

我认为您正在使用的功能需要 JSONP。这就是回调=?反正表示。你试过把它关掉吗?

$.getJSON('ex71.json', function(json) {
    $('input#tmpTitle').val(json.title);
    $('input#tmpCompany').val(json.company);
}); 

文档上的此页面在中途注释中解释了 callback=? 可用于跨域调用所需的 JSONP。如果您不进行跨域调用,则不需要它。如果您正在进行跨域调用,那么您需要返回 JSONP 而不是常规 JSON(这实际上比听起来容易得多)。

http://api.jquery.com/jQuery.getJSON/

于 2010-04-08T19:40:22.350 回答