在一个'可拖动的Windows界面'上工作3天后,我发现核心不允许我在页面上创建多个窗口。
我决定切换到Prototype-UI界面,但似乎它使用我当前的Jquery代码中断,任何想法如何解决这个问题?
当我附加Prototype-UI JS文件时,这是Web控制台显示的错误:
[16:39:42.443] $("BODY") is null @ http://XXX.XXX/smart_panel/res/main.js:4
所以基本上这就是产生问题的代码:(Jquery bg image stretcher)。
$(document).ready(function(){
// Initialize Backgound Stretcher
$('BODY').bgStretcher({
images: ['images/spb3.jpg'], imageWidth: 1360, imageHeight: 765
});
});
在我尝试删除之后,我在下一个JQuery插件上遇到了另一个错误($('#dock2')为null)。
当你不是一名JavaScript专业人士时,一遍又一遍地尝试是非常令人沮丧的(我认为这种做法是最好的学习过程)。
所以在删除这三行之后:
<script type="text/javascript" src="res/prototype.js"></script>
<script type="text/javascript" src="res/effects.js"></script>
<script type="text/javascript" src="res/window.js"></script>
Prototype-UI的文件是一切正常,我没有错误,所以有没有什么方法可以将这个界面设计为独立工作而没有任何其他JS / JQ脚本?我不这么认为,这就是我需要你帮助的原因。
以下是Prototype-UI的链接:http://docs.prototype-ui.com/trunk
如果没有办法解决它,有人可以建议一个GOOD可拖动的Windows插件,这将允许我在页面上创建多个可调整大小的可拖动窗口? :\
最诚挚的问候, Rico S。
答案 0 :(得分:0)
如果你试图在同一个页面中使用jQuery和Prototype,那么你将不得不处理这样一个事实:只有其中一个人会在争夺“$”的战斗中胜出。这听起来像是在 jQuery之后导入Prototype ,这意味着你的代码需要“$”作为jQuery主函数实际上是Prototype“getElementById”的快捷方式。
我不记得Prototype是否有冲突预防钩子,但jQuery绝对可以。你可以做的是在导入jQuery库之后,添加一个小的<script>
块,如下所示:
<script> jQuery.noConflict(); </script>
在那之后,库可以共存,但是所有想要做jQuery的代码都必须使用函数名“jQuery”而不是“$”。
您可能需要查看jQuery UI widget collection。那里有一个“对话框”小部件,可以(或可以)可拖动和调整大小。是否可以同时在页面上显示多个这样的对话框,我不知道,主要是因为这是一个糟糕的用户界面模式(在我看来),我永远不会这样做。