JQuery插件在大多数浏览器上都没有显示

时间:2012-04-22 21:07:40

标签: javascript jquery jquery-plugins

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

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

错误: 通常,当网站加载时,应显示地图。 但是除了firefox之外的所有浏览器在你拖动地图之前只有黑屏 它有效。

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

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

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

1 个答案:

答案 0 :(得分:1)

innerDiv.css('left')在初始化时设置为auto(在第一次拖动之前表示)。所以在getVisibleTiles函数中,mapX等于NaN所以不执行double 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);