0

ガイドで見つけたjavascript要素を追加しました。以下の通りです

$(document).ready(function ()
    {
        $('.dropdownbutton').click(function ()
        {
        $.post("send.php", $(".mycontactform").serialize(),  function (data) 
            {   
            });
        $('#success').html('Message sent!');
        $('#success').hide(2000);
    });
});

既存のJavaScriptは

        function toggleDisplayWait(divId, imgId, durationmSec) {
        if(!$(divId).visible()) {
            move = Effect.BlindDown;
            newImage = "./img/minus.png";
        }
        else {
            move = Effect.BlindUp;
            newImage = "./img/plus.png";  
        }        
        move(divId, {duration: durationmSec / 1000.0 });
        setTimeout(function() { $(imgId).src = newImage; }, durationmSec)
    }



function BDEffect(divId, imgId)
    {
        /* new Effect.BlindDown(element, {duration:3});
        }*/

        if(!$(divId).visible()) 
            {
                move = Effect.BlindDown;
                newImage = "./img/feedbacktab_open.png";
                setTimeout(function() { $(imgId).src = newImage; }, 0)
            }
        else 
            {
                move = Effect.BlindUp;
                newImage = "./img/feedbacktab.png";
                setTimeout(function() { $(imgId).src = newImage; }, 2)
            }        
            move(divId, {duration:2});
            /*setTimeout(function() { $(imgId).src = newImage; }, 0)*/
    }
</script>

しかし、古いコードも新しいコードも現在は機能しません。

古いスクリプトを使用しようとすると、「$(divId).visibleは関数ではありません」というエラーコンソールが報告されるようになりました

4

1 に答える 1

1

古いコードはPrototypeフレームワークを使用しているように見え、新しいコードはjQueryを使用しています。

noConflict()2つを一緒に使用する場合は、両方が変数を使用しようとしないように、jQueryを使用する必要があり$ます。

まず、jQueryライブラリを含めた後、次のようなスクリプトを追加します。

<script>
  jQuery.noConflict()
</script>

次に、jQueryコードを次のように変更します。

jQuery(function ($) {
    $('.dropdownbutton').click(function() {
    $.post("send.php", $(".mycontactform").serialize(), function(data) {});
    $('#success').html('Message sent!');
    $('#success').hide(2000);
});

を使用すると、jQueryを使用するすべての場所で、の代わりに変数をnoConflict使用する必要があります。ただし、ローカル変数として渡すことはでき、Prototypeと競合することはありません。jQuery$$

document.ready(function() { ... })また、関数をjQueryの短縮バージョンに変更したことに注意してください:jQuery(function() { ... })。関数には、便宜上jQuery名前を付けたオブジェクトも渡されます。$

于 2012-05-02T22:51:03.317 に答える