首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery不适用于原型。

Jquery不适用于原型。
EN

Stack Overflow用户
提问于 2011-10-09 10:30:30
回答 2查看 2.1K关注 0票数 2
代码语言:javascript
复制
<script src="jquery.js"></script>
<script>
    var $jq = jQuery.noConflict();
    $jq(document).ready(function(){
        alert("123");
        $jq("#redactor_content").redactor();
        alert("456");
    });
</script>
<script src="prototype.js"></script>
<script src="redactor.js"></script>

"redactor.js“是基于JQuery:http://imperavi.com/download/redactor/get/的WYSIWYG编辑器,其中包含:

代码语言:javascript
复制
...
(function($){
   // Initialization
   $.fn.redactor = function(options)
   { ... };
})(jQuery);
...

当我评论"prototype.js“-一切正常(我看到"123456")。

与"prototype.js“-只看到"123”和“编者”不起作用。(这意味着名称空间工作正常,对吗?为什么第二个警报不起作用?)

当我只评论$jq(document).ready(function(){并在调用之前移动"redactor.js“(调用"redactor()”而不等待DOM) --一切都很好。

我不明白这个原则。在包含"jquery.js“之后,我首先"$”覆盖,然后包含"prototype.js“以避免冲突。但是Namespace仍然与Prototype交叉。我怀疑错误就在这里:$jq("#redactor_content").redactor();和我需要做一些类似于:.redactor($jq);的事情,但是它打破了我的头,我无法猜测。

P.S.:是的,我读了文档( http://docs.jquery.com/Using_jQuery_with_Other_Libraries ),并尝试了不同的方法(交换库和尝试$.noConflictjQuery(document).ready...) )。我写了一个例子,任何事情都在起作用,而且有些清晰。

我的第二个问题:它会一起工作吗:jQuery(document).ready(function()和Prototype的document.observe("dom:loaded", function(),如果没有,如何一起工作?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-10-09 11:03:39

试着替换

代码语言:javascript
复制
<script>
    var $jq = jQuery.noConflict();
    $jq(document).ready(function(){
        alert("123");
        $jq("#redactor_content").redactor();
        alert("456");
    });
</script>

使用

代码语言:javascript
复制
<script>
(function($){
    $(document).ready(function(){
        alert("123");
        $("#redactor_content").redactor();
        alert("456");
    });
})(jQuery);  
</script>
票数 1
EN

Stack Overflow用户

发布于 2011-10-09 11:03:40

据我所见,这应该行得通。唯一可能出错的地方是redactor.js需要代码中的$赋值(这可能是一个错误),但是它似乎正确地处理了这个问题。

您可以先加载prototype,然后加载jquery + redactor.js,然后使用jQuery.noConflict() (在本例中将$-operator切换回前一个值prototype )来测试这个问题。

顺便说一句,如果第二个警报没有弹出,我预计控制台会出现一些错误,这也是相关的信息。

关于你的第二个问题:是的,这两种方法都应该很好。但你当然只需要一个:)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7702881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档