使用fadeIn()& fadeOut()同时使用jQuery和Prototype

时间:2010-06-28 09:43:31

标签: jquery prototypejs fadein fadeout

我有一个我正在更新的网页,此页面使用Prototype和Lightbox。我不想将当前页面更改为jQuery,因为我不确定还有什么使用Prototype,如果我不再包含Prototype,它会随后中断。

我的问题如下:

我有一些TD,我只想点击按钮就可以淡入淡出。当我暂时取出Prototype时,这非常有效。一旦我重新放入Prototype,fadeOut() jQuery函数就会完全中断。我怀疑这是因为Prototype还有一个fadeIn()& fadeOut()功能。

有没有办法可以强制Prototype不将这些函数识别为函数,并且仍然让jQuery完美地执行它们?

这是我的jQuery代码:

var $j = jQuery.noConflict();

$j(document).ready(function () {    
    $j("a.archiveBtn.2009").click(function () {
        $j("td.archive.2009").fadeIn();
        $j("tr td.archiveBtn").css("paddingBottom", 20);
        $j("tr td.archiveBtn").css("borderBottom", "#999 1px dashed");
        $j("a.hideArchive.2009").show();

        return false;
    });

    $j("a.hideArchive.2009").click(function () {
        $j("td.archive.2009").fadeOut(function () {
            $j("tr td.archiveBtn").css("paddingBottom", 0);
            $j("tr td.archiveBtn").css("borderBottom", "none");
        });
        $j(this).hide();

        return false;
    });

    $j("tr td.archiveBtn").parent().prev("tr").children("td").css("paddingBottom", 20);
});

任何帮助都将受到赞赏并提前感谢。

3 个答案:

答案 0 :(得分:1)

你似乎已经尊重jQuery中的冲突推荐,也许可以尝试以下方法,它会在这里停用Prototype函数,但我真的不确定它会不会这样做,因为我没有在你的代码中发现问题但值得一试:

jQuery(document).ready(function($) {
         $("a.archiveBtn.2009").click(function () {
 .....


}

有了这个你可以直接使用$而不是$ j,你确定它只是jQuery函数。 顺便说一下你完全打破什么意思?动画很奇怪?它根本不会褪色?

希望这有帮助,

度过愉快的一天(听Carlos Jean ^^)

答案 1 :(得分:1)

如果jQuery的.animate对您有效,那么您可以使用.animate({opacity: 0}).animate({opacity: "hide"})执行与.fadeOut()相同的操作

答案 2 :(得分:0)

最后,我确定Prototype.js只适用于Lightbox,所以我禁用了Prototype.js并整合了Lightbox jQuery插件。

我的代码现在完美无缺。