0

我有一个网站在 90% 的页面上呈现基于原型的日历。我也在考虑使用 Uploadify 模块来处理使用 Paperclip 进行的多次上传。如您所知,Paperclip 和 JQuery 不能很好地发挥作用,而且我尝试过的许多解决方案(例如 NoConflict)都对我不起作用,我仍然在整个地方的 firebug 中遇到“未定义”错误。我想知道添加这个 JQuery 模块的最佳方法是什么,该模块将在很大程度上基于原型的应用程序中非常本地化。我考虑过用 JQuery 切换我的原型代码,但我还没有看到针对我正在使用的这个特定日历插件的更好的 JQuery 解决方案。

4

1 回答 1

2

为 noConflict 使用适当的结构。

<script src="prototype.js"></script>
<script src="someprototypeplugin.js"></script>
<script src="jQuery.js"></script>
<script src="uploadify.jquery.js"></script>
<script>
$.noConflict();
jQuery(document).ready(function($){
    $("#someelement").uploadify();
});
</script>

如果这不能回答您的问题,请提供更多(一些)代码。

编辑评论:

只需在$.noConflict()您的 jQuery 插件之后立即运行,然后在整个 JS 文件中使用jQuery而不是变量。$

<script src="prototype.js"></script>
<script src="someprototypeplugin.js"></script>
<script src="jQuery.js"></script>
<script src="uploadify.jquery.js"></script>
<script>
    $.noConflict();
</script>

示例 js 文件:

(function($){
    // since we passed a reference to jQuery to this anonymous
    // function and accepted it as a parameter named "$", we can
    // safely use "$"
    $("#target").uploadify();
})(jQuery);

如果您需要准备好文档,您可以这样做:

jQuery(document).ready(function($) {
    $("#target").uploadify();
});
于 2012-05-14T18:15:01.997 回答