-2

我创建了一个 JQuery 插件来显示可拖动的地图 (xy)。

在 Firefox 上它可以完美运行,但在任何其他浏览器上都存在错误。

错误:通常应在站点加载时显示地图。但是在除firefox之外的所有浏览器上只有一个黑屏,直到你拖动地图,然后它才能工作。

我不知道如何解决这个问题。

示例:http: //jsfiddle.net/X42Wf/

我希望你明白我的意思,如果不看示例(不是使用 firefox),运行它然后拖动黑色输出。

4

1 回答 1

1

innerDiv.css('left')设置为初始化时(意味着在第auto一次拖动之前)。所以在getVisibleTiles函数中,mapX等于NaN所以不执行双for循环

你只需要编辑这个:

jQuery('<div/>', {
    id: 'GameMap',
    height: o.InnerDivHeight,
    width: o.InnerDivWidth
}).appendTo(obj);

有了这个:

jQuery('<div/>', {
    id: 'GameMap',
    height: o.InnerDivHeight,
    width: o.InnerDivWidth,
    css: {
        left: 0,
        top: 0
    }
}).appendTo(obj);

此外,如果您想避免对 IE 产生副作用,您应该在对象声明的末尾删除尾随逗号,就像在这两个示例中一样:

jQuery('<div/>', {
    id: tileName,
    style: "some CSS string", // <----- remove this comma or it will break on IE
}).appendTo(innerDiv).text(tileName);

jQuery('<div/>', {
    id: 'GameMap',
    height: o.InnerDivHeight,
    width: o.InnerDivWidth, // <----- this one too
}).appendTo(obj);
于 2012-04-22T21:24:50.943 回答