Использование fadeIn () и fadeOut () с jQuery и Prototype одновременно - PullRequest
3 голосов
/ 28 июня 2010

У меня есть веб-страница, которую я обновляю, эта страница использует Prototype вместе с Lightbox. Я не хотел бы менять текущую страницу на jQuery-only, так как я не уверен, что еще использует 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 ]

1 голос
/ 28 июня 2010

Если jQuery .animate работает правильно для вас, вы можете использовать .animate({opacity: 0}) или .animate({opacity: "hide"}), чтобы сделать то же самое, что и .fadeOut()

1 голос
/ 28 июня 2010

вы, похоже, соблюдали рекомендации по конфликтам из jQuery, возможно, попробуйте следующее, здесь будут отключены функции Prototype, но я действительно не уверен, что это сработает, потому что я не определил проблему в вашем кодено стоит попробовать:

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


}

С этим вы можете использовать $ напрямую вместо $ j, и вы уверены, что это только функция jQuery.Кстати, что вы подразумеваете под разрывом полностью?Анимация странная?Это не делает исчезновение вообще?

Надеюсь, это поможет,

Хорошего дня (слушая Карлоса Джина ^^)

0 голосов
/ 29 июня 2010

В конце концов, я определил, что Prototype.js существует только для работы Lightbox, поэтому я отключил Prototype.js и включил плагин Lightbox jQuery.

Мой код теперь работает отлично.

...