0

我正在尝试在我的网站上实现 SqueezeBox.js,但遇到了问题。

这是我的代码:

<script type="text/javascript" src="/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="/js/mootools-1.2.6-core.js"></script>
<script type="text/javascript" src="/js/SqueezeBox/SqueezeBox.js"></script>
<script type="text/javascript">
    $(function() {
        $("#connect").click(function () {
            SqueezeBox.initialize({
                size: {x: 350, y: 400}
            });
            SqueezeBox.open('..\connect.php', {handler: 'iframe'});
        });
    });
</script>

...

<a id="connect" href="#">CONNEXION</a>

当我点击我的链接时,Chrome 控制台显示:“未捕获的 TypeError:Object [object Object] has no method 'adopt'”

我试图将“ SqueezeBox.initialize({ }); ”从 Click 事件中删除,并且出现同样的错误。所以,SqueezeBox 似乎有问题,但我找不到。

有小费吗?

此致


好的,所以我决定查看 SqueezeBox.js 以了解发生了什么。

我在第 113 行看到,女​​巫是控制台报告的行:

$(this.doc.body).adopt(this.overlay, this.win);

我只是将其替换为:

this.doc.body.adopt(this.overlay, this.win);

它现在完美运行......

我猜它来自Jquery的版本或其他东西..

无论如何,谢谢,再见。

4

1 回答 1

0

您在元素存在之前调用 .js 函数。您可以尝试将您的 javascript 移动到页面末尾,就在结束 '' 标记之前。更好的是,当你使用 jQuery 时,为什么不把它放在一个 '$(document).ready()' 块中呢?

$(document).ready(function() {
    $("#connect").click(function () {
        SqueezeBox.initialize({
            size: {x: 350, y: 400}
        });
        SqueezeBox.open(\'..\connect.php\', {handler: \'iframe\'});
    });
});

这样它在页面加载之前不会运行。

于 2013-02-22T14:35:39.770 回答