原型和jQuery UI干扰

时间:2013-08-07 13:20:46

标签: jquery jquery-ui magento prototypejs

好的所以我已经研究了一段时间并重新排序了我知道多少次的javascript文件。我知道Prototype和jQuery在彼此之间不能很好地工作。但是,我的jQuery正在运行,但我的jQuery UI功能不是。

我按此顺序列出我的js文件: - prototype.js - jquery.js - jquery-ui.js - jquery-noconflict.js

我的jQuery没有冲突文件如下所示:

jQuery.noConflict();

好的所有垃圾都在标签中。稍后在一个页面中,我正在这样做:

<div class="product_tabs clearfix">
    <ul>
        <?php if ($_description): ?> <li><a href="#tabs-1"><?php echo $this->__('Details') ?></a></li> <?php endif; ?>
        <li><a href="#tabs-2">Review</a></li>
        <li><a href="#tabs-3">Tags</a></li>
    </ul>
    <div class="std clearfix">
        <?php if ($_description): ?> <div id="tabs-1"><?php echo $this->helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?></div> <?php endif; ?>
        <div id="tabs-2">
            <div class="row">
                <div class="span5"><?php echo $this->getChildHtml('review_form') ?></div>
                <div class="span4"><?php echo $this->getChildHtml('reviews') ?></div>
            </div>
        </div>
        <div id="tabs-3"><?php echo $this->getChildHtml('product_tag_list') ?></div>
    </div>
</div>
<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('.product_tabs').tabs();
    });
</script>

这已经破了..但是,我的main.js文件被称为BEFORE我的noconflict文件,但在我的js和prototype文件与我的下拉导航一起使用与上面的函数相同的ready()工作。< / p>

但是,我将tabs()函数移动到main.js文件中,并且在从页面中删除它时仍然无法正常工作。有没有人对此有任何解决方案?

我删除了使用tabs()函数的页面上的noconflict并且它工作正常,但IE8及以下版本没有。所以这不是一个有价值的解决方案......这是我能想到的唯一一个。

我必须保留原型,因为我正在使用Magento CMS!

2 个答案:

答案 0 :(得分:0)

你应该使用$作为原型函数,使用jQuery作为jQuery,如下所示:

<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery('.product_tabs').tabs();
});
</script>

答案 1 :(得分:0)

请尝试在最顶层加载jQuery,即在原型之前加载jQuery,并在jquery文件的末尾写入jQuery.noconflict()。然后使用jQuery(document).ready(function($){...});初始化您的jQuery代码。