2012-05-02 14 views
0

ガイドにあるjavascript要素を追加しました。Javascript Conflict ajax mailとscriptaculous

$(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> 

でしたが、古いコードもNEWコードのどちらも機能するようになりましたが、次のようにそれはあります。私はそれがプロトタイプフレームワークを使用していて、新しいコードはjQueryのを使用しているように、古いコードに見える古いスクリプト

答えて

1

を使用しようとすると、今の報告

エラーコンソール「$(divIdは).visibleは関数ではありません」 。

2つを併用する場合は、$変数を使用しないように、jQueryのnoConflict()を使用する必要があります。その後

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

このように見えるようにあなたのjQueryのコードを変更します:

jQueryライブラリを含めた後、まず、このようなスクリプトを追加noConflict

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

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

また、document.ready(function() { ... })機能をjQuery's shorthand versionjQuery(function() { ... })に変更しました。この関数は、jQueryオブジェクトも渡されます。これは便宜上、$という名前です。

+0

うまく機能しました!送信ボタンは何もしないようですが、私の次の問題だと思います! – mercuryfrost