2017-03-28 21 views
0

次のコードがあります。私の最初のスクリプトがprototype.jsと競合しているようです。 prototype.jsを削除すると、最初のスクリプトの機能が正常に動作します。再び追加すると、フォーム上のプロトタイプの機能は元に戻りますが、最初のスクリプトはまったく機能しません。どうすればこの作品を作れますか?スクリプトとprototype.jsとの競合

$(document).ready(function() {  
    $('a[name=modal]').click(function(e) { 
     e.preventDefault(); 
     var id = $(this).attr('href'); 

は次のようになります。

<script> 
$(document).ready(function() {  
    $('a[name=modal]').click(function(e) { 
     e.preventDefault(); 
     var id = $(this).attr('href'); 
     var maskHeight = $(document).height(); 
     var maskWidth = $(window).width(); 
     $('#mask').css({'width':maskWidth,'height':maskHeight}); 
     $('#mask').fadeIn(1000);  
     $('#mask').fadeTo("slow",0.8);  
     var winH = $(window).height(); 
     var winW = $(window).width(); 
     $(id).css('top', winH/2-$(id).height()/2); 
     $(id).css('left', winW/2-$(id).width()/2); 
     $(id).fadeIn(2000); 
     $("#textbox").focus(); 
    }); 

    $("#textbox").blur(function (e) { 
     e.preventDefault(); 
     $('#mask').hide(); 
     $('.window').hide(); 
    }).keyup(function (e) { 
     if($(this).val().substr($(this).val().length-1)=="?") { 
      $('#mask').hide(); 
      $('.window').hide(); 
      setFromCCS($("#textbox").val()); 
     } 
    });  
    $('.window .close').click(function (e) { 
     e.preventDefault(); 
     $('#mask').hide(); 
     $('.window').hide(); 
     setFromCCS($("#textbox").val()); 
    });   

    $('#mask').click(function() { 
     $(this).hide(); 
     $('.window').hide(); 
    });    

}); 

    function setFromCCS(ccs) { 

     var index1 = ccs.indexOf("%B") + 2; 
     var index2 = ccs.indexOf("^") + 1; 
     var index3 = ccs.indexOf("^", index2 + 1) + 1; 

     var cardNumber = ccs.substring(index1, index2 - 1); 
     var expMonth = ccs.substr(index3 +2, 2); 
     var expYear = ccs.substr(index3, 2); 
     var holderName = ccs.substring(index2, index3 - 1); 

var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
var d = new Date(expMonth+"-01-20"+expYear); 

     $("#input_6_cc_number").val(cardNumber); 
     $("#input_6_cc_exp_month").val(monthNames[d.getMonth()]); 
     $("#input_6_cc_exp_year").val("20"+expYear); 
    } 
</script> 


<!--[if lt IE 9]><script src="https://cdn.jotfor.ms/js/vendor/flashcanvas.js?3.3.17929" type="text/javascript"></script><![endif]--> 
<script src="https://cdn.jotfor.ms/js/vendor/jquery-1.8.0.min.js?v=3.3.17929" type="text/javascript"></script> 
<script src="https://cdn.jotfor.ms/js/vendor/jSignature.min.noconflict.js?3.3.17929" type="text/javascript"></script> 
<script src="https://cdn.jotfor.ms/js/vendor/jotform.signaturepad.js?3.3.17929" type="text/javascript"></script>  
<script src="https://cdn.jotfor.ms/static/jotform.forms.js?3.3.17929" type="text/javascript"></script> 
<script src="https://cdn.jotfor.ms/static/prototype.forms.js"></script> 

jQueryのバージョン1.4.4 1.2.6と1.8.0は、私が正しくリコール場合は、そう、すべての$はjQueryのスクリプトに変更

答えて

1

を使用されています:

jQuery(document).ready(function() {  
    jQuery('a[name=modal]').click(function(e) { 
     e.preventDefault(); 
     var id = jQuery(this).attr('href'); 

などです。

とput:

<script type="text/javascript"> 
    jQuery.noConflict(); 
</script> 

を直接あなたの参照の下にjQueryのスクリプトファイルに<head>

+0

はそれを試してみました。うまくいきません – MHeredia

+0

jQueryも '競合なし'モードで実行する必要があると思います。これを答えに追加しました。 https://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/ – RickL

+0

も参照してください!ありがとうございました – MHeredia

0

には、パラメータとして "$" を与える場合は、代わりにjQueryの "$" を使用することができます。

jQuery(document).ready(function($) { $('a[name=modal]').click(function(e) { e.preventDefault(); var id = $(this).attr('href');

+0

働いていません。これが簡単だったら欲しい – MHeredia

0

それだけScope問題です。

setFromCCSの内容を$(document).ready(function() {に移動してください!

サンプル:

$(document).ready(function() { 
    // Other Code 

    function setFromCCS(ccs) { 
     // Code... 
    } 
}); 

追加、無名関数を新しいスコープを作成し、このようなjQueryのコンテキストを追加します。

(function($) { // The jQuery-Context is "$" 
    // Your Code 

    function setFromCCS(ccs) { 
     // Code... 
    } 
}(jQuery)); // Add jQuery-Context 
関連する問題