1

我遇到了两个 jQuery 调用的问题。第一个是“加载”,它检索 HTML 并将其显示在页面上(它确实在返回的代码中包含一些 Javascript 和 CSS)。第二个是返回 JSON 的“getJSON”——返回的 JSON 是有效的。

在我尝试过的所有其他浏览器中一切正常 - 除了适用于 Windows 或 Mac 的 Chrome。有问题的页面在这里:

http://urbanistguide.com/category/Contemporary.aspx

当您在 IE/FF 中单击餐厅名称时,您应该会看到该项目扩展了更多信息 - 并且右侧显示了一张地图。但是,如果您在 Chrome 中执行此操作,您得到的只是打印到屏幕上的 JSON 数据。

第一个问题点是在此处调用“加载”函数时:

    var fulllisting = top.find(".listingfull");
    fulllisting.load(href2, function() {
       fulllisting.append("<div style=\"width:99%;margin-top:10px;text-align:right;\"><a href=\"#\" class=\"" + obj.attr("id") + "\">X</a>");
       itemId = fulllisting.find("a.listinglink").attr("id");

...

在上面的代码中,回调函数似乎没有被调用。

第二个问题点是调用“getJSON”函数时:

$.getJSON(href, function(data) {
    if (data.error.length > 0) {
        //display error message
    }
    else {
        ...
    }

在这种情况下 - 它似乎只是跟随链接而不是执行回调......是的,我正在做一个“return false;” 在所有这些结束时,以防止链接执行。

如果您想查看源代码,所有其余代码都内联在该页面上。

有任何想法吗??

谢谢

4

2 回答 2

0

Chrome 过于严格,无法识别格式错误的 JSON 对象,与其他浏览器不同。

i.e. {"list":["abc","def",]}

你必须把它改成

{"list":["abc","def"]}

或者

{"list":["abc","def",""]}

当然省略最后一个。

于 2010-08-08T01:24:00.800 回答
0

loadBusiness(obj, doScrollTo)重新声明top = obj.parent().parent().parent()var top = obj.parent().parent().parent().

您现在拥有它的方式是指 window.xml 中的全局变量top。因为它是一个特殊的变量,Chrome 不允许你重新定义它。当您运行时,var fulllisting = top.find(".listingfull")您实际上是在运行var fulllisting = window.find(".listingfull")(检查https://developer.mozilla.org/en/DOM/window.find)。这个方法返回false然后这里抛出异常:fulllisting.load(...)因为和false.load(...)

于 2010-08-08T02:12:27.263 回答