gpt4 book ai didi

jquery - 与 jQuery + Prototype + Opera/IE 冲突

转载 作者:行者123 更新时间:2023-12-01 05:08:02 26 4
gpt4 key购买 nike

我正在使用带有原型(prototype)的 IPBoard CMS,并且我使用最新的 jQuery。

我实现了一个 jQuery 画廊图片查看器:- 它在 Chrome 和 Firefox 上运行良好。- 我在使用 Opera 和 IE 8 时遇到问题。

我在这里创建了一个最小的示例:http://www.warriorlabs.net/index.php?app=ccs&module=pages&section=pages&folder=&id=22

您只需点击图片即可。

在 IE 8 或 Opera 中:

当我删除原型(prototype)时,一切正常。

当我将 jQuery 原型(prototype)与“noConflicted”画廊查看器一起保存时,jQuery 访问器返回的宽度和高度似乎存在错误。因此,加载框未居中,图片本身似乎映射到整个窗口。

有人知道为什么会发生这种情况吗?

如果有一点帮助,我们将不胜感激。

最佳答案

我实际上并没有同时使用原型(prototype)和 jQuery,但根据我的理解,您应该将 jQuery.noConflict() 调用放在原型(prototype)脚本之前。

尝试将文档头更改为如下所示:

<head>
<script src="http://cdn.jquerytools.org/1.2.4/full/jquery.tools.min.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script type="text/javascript" src="http://prototypejs.org/assets/2009/8/31/prototype.js"></script>
<script type="text/javascript" src="http://www.warriorlabs.net/jScript/facebox/facebox.js"></script>
</head>

编辑:
还要从 facebox.js 的第一行删除 jQuery.noConflict(),因为它删除了原型(prototype)定义的 $ 函数。

旁注:
编写 jQuery 插件的常用方法是这样的:

(function($){
//Inside this block we know that $ == jQuery
//The global $ (i.e. window.$) might be something else
//By using this anonymous function we make sure we don't polute the global namespace
var v = "function scope";//this is a variable in the scope of the function
window.globalV = "global scope";//this is a global variable
$.fn.myPlugin = function(){
//my plugin code, usually something like:
return this.each(function(){
//do something with each element
$(this).show();
});
//returning this.each allows for chaining
}
})(jQuery);
<小时/>

在 Chrome 中,我在演示页面上收到此错误:
未捕获类型错误:对象 [object DOMWindow] 的属性“$”不是函数 [prototype.js:4598]

关于jquery - 与 jQuery + Prototype + Opera/IE 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com