Javascript覆盖问题类xml

时间:2011-08-02 19:24:11

标签: javascript xml class override image-gallery

可能这是一个基本的东西,但现在更好地学习,然后再学习。

我在做什么: 我正在实现一个获取xml的库,然后使用一些javascript代码构建我。问题我试图调用两次gallery.init像:

$(document).ready(function(){


    galleryXML.init({
        xmlPath : "data/gallery.xml",
        imgPath : "images",
        perView : 4,
        id: "#gallery1"
    });
    galleryXML.init({
        xmlPath : "data/gallery.xml",
        imgPath : "images",
        perView : 4,
        id: "#gallery"
    }); 
})

我希望在#gallery中的#gallery1中有一个。有人能告诉我这是什么问题吗?

代码的其余部分是here,只需要下载,解压缩并执行index.html(在firefox中工作,不确定为什么)

提前致谢。

更新

这是现在的一个最小例子,不确定是否代表问题。

http://jsfiddle.net/PSYCKIC/rpNab/2/ - > 已更新

2 个答案:

答案 0 :(得分:1)

我认为你的问题可能是你使用相同的变量_P(你期望的是)两个不同的galleryXML实例。

由于_P之后的(),因此在解析javascript代码时会创建并初始化var galleryXML = function() {...}变量。

所以我想如果你把变量放在galleryXML的init中,你的问题就会解决了。您可以在此处查看代码: jsfiddle.net/rpNab/3/ (请注意,现在每个li都位于每个图库中,而不是最后一个图库中的li

编辑:我意识到现在通过我的修改,galleryXML模块看起来很丑陋(因为它只有一个方法而且没有变量),所以我做了一个小的重构,以便在里面有更多的方法该类,但现在方法必须接收参数,因为类本身仍然是“静态”,但参数可以使它适用于不同的上下文。希望它有所帮助: jsfiddle.net/rpNab/4/

答案 1 :(得分:0)

看起来它在你的jsFiddle示例中运行得很好。您没有看到li显示的唯一原因是您忘记为该特定li添加样式。这是一个更新的jsFiddle,您的代码保持不变且正确的样式。