0

我正在实现以下两组功能:-

对于窗口生成 - 所需的 jQuery 库是: - jquery.js (v1.3.2) - jquery-ui.js (v1.7.2)

我在这里使用了一个扩展库——它使用 $.window{...} 创建了一个基于 jquery 的对话框窗口。

对于自动完成/插件搜索, - 我使用的所需库是: - jquery.js (v1.7.2) - jquery-ui.js (v1.8.18)

这 2 个分别工作得很好。但是,当在同一页面上使用时,我必须创建无冲突文件,以便这两个函数在两者之间的某个地方相遇。因此,现在,我正在使用:

  • jquery.js (v1.3.2)
  • jquery.js (v1.7.2)
  • jquery-ui.js (v1.8.1)

作为:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript" src="http://jqueryui.com/ui/jquery.ui.autocomplete.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
    var jQuery_1_3_2 = $.noConflict(true);
</script>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.js"></script>

/* Here I would like to use the script below with another noConflict, because v1.8.1 (above) causes flickering of dialog boxes while dragging around & isnt smooth like the one below, which is v1.7.2:-
<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/jquery-ui.js"></script>
*/

<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/window/jquery.window.js"></script>

当像上面那样使用时,与窗口交互时会有相当多的视觉故障。在移动窗口时,页面的其他部分通常会突出显示或闪烁(快速突出显示) - 大约 50% 的时间。拖动和调整大小也不是很流畅。

如果我删除 v1.7.2 jquery.js,窗口会平滑很多,但自动完成功能停止工作。如果我删除 v1.3.2 jquery.js,则不会生成窗口。

现在,我使用如下功能:-

function createSampleWindow() { 
sampleWnd = $.window({
.......//Code here
}(jQuery_1_3_2);

我如何在这里也使用 v1.7.2 jquery-ui.js 使用一些变量,例如:-

<script type="text/javascript" src="http://fstoke.me/jquery/window/js/jquery/jquery-ui.js"></script>
<script type="text/javascript">
    var jq_172= $.noConflict(true);
</script>

Qn 1使用两个变量的正确语法是什么 - jQuery_1_3_2 AND jq_172 - 用于同一个函数?这里使用的东西像: -

function createSampleWindow() { 
sampleWnd = $.window({
.......//Code here
}(jQuery_1_3_2, jq_172);

或者

function createSampleWindow() { 
sampleWnd = $.window({
.......//Code here
}(jQuery_1_3_2),(jq_172);

不工作。

Qn 2是否有可能使用 jquery.js v1.7.2 而不是 v1.3.2 实现一个大型 javascript,例如fstoke中使用的那个 - 如果有人可以对为什么用 v1.7.2 替换 v1.3.2 做出显着区别它停止工作 - 我将非常感激。

如果我可以补充的话,因为窗户是由 $.window({...}); - 将 $.window 替换为 $.dialog 不会生成对话框。我有什么地方出错了吗?请浏览fstoke 中使用的 js 文件。

Qn 3有人可以指出fstoke jquery-uicdn 托管 jquery-ui之间有什么区别- 两者都是 v1.7.2 jquery-ui.js 文件。

我觉得这是一个很长的查询,但我迫切需要帮助。请尽早帮助我。!

4

1 回答 1

0

我会回答问题1。

使用两个版本的 jQuery 的正确语法类似于

var jQuery_1_3_2 = jQuery.noConflict(true);

function createSampleWindow() { 
    var no_op = jQuery.noop;       // refers to jQuery 1.7.2's noop function
    var no_op = $.noop;            // same as the above
    var no_op = jq_172.noop;       // same as the above
    var guid = jQuery_1_3_2.guid;  // refers to jQuery 1.3.2's guid member
}

换句话说,如果您已经定义了它们,您只需使用它们。noConflict(true)将返回$并恢复jQuery到以前的含义,因此您可以像往常一样继续使用它们。

于 2012-07-09T22:40:30.683 回答