3

更新しているWebページがあります。このページでは、プロトタイプとライトボックスを併用しています。現在のページをjQueryのみに変更したくありません。他に何がPrototypeを使用しているかわからないため、Prototypeをもう含めないと後で壊れてしまいます。

私の問題は次のとおりです。

ボタンをクリックするだけでフェードインおよびフェードアウトしたいTDがいくつかあります。これは、一時的にPrototypeを取り出すときに完全に機能します。Prototypeを元に戻すとすぐに、fadeOut()jQuery関数は完全に機能しなくなります。これは、プロトタイプにも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);
});

どんな助けでもありがたいです、そして前もって感謝します。

4

3 に答える 3

1

jQueryからの競合の推奨事項を尊重しているようですが、次のことを試してみてください。ここでプロトタイプ関数が非アクティブ化されますが、コードで問題を特定しなかったため、うまくいくかどうかはわかりませんが、価値があります。試してみてください:

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


}

これにより、$ jの代わりに$を直接使用でき、jQuery関数のみであることが確実になります。ところで、完全に壊すとはどういう意味ですか?アニメーションがおかしい?フェードは全然しませんか?

お役に立てれば、

良い一日を(カルロス・ハエンに耳を傾ける^^)

于 2010-06-28T10:21:32.640 に答える
1

jQueryが正しく機能している場合は、またはと同じことを行う.animateことができます。.animate({opacity: 0}).animate({opacity: "hide"}).fadeOut()

于 2010-06-28T10:37:03.470 に答える
0

結局、Prototype.jsはLightboxが機能するためだけに存在すると判断したので、Prototype.jsを無効にして、LightboxjQueryプラグインを組み込みました。

私のコードは完全に機能するようになりました。

于 2010-06-29T11:40:11.197 に答える