2016-09-05 4 views
-1

スクリプトの関数を使用する2つのイベントがあります。スクリプトをロードした後でのみ、この関数の使用を開始する方法は?スクリプトを読み込んだ後にイベントを使用する

グーグルクロームコンソールで
<script src="~/lib/jquery/dist/jquery.js"></script> 
<script src="~/lib/intl-tel-input/js/intlTelInput.js"></script> 
    <script> 
     var settings = { 
      utilsScript: "../lib/intl-tel-input/js/utils.js", 
      initialCountry: "auto", 
      geoIpLookup: function (callback) { 
       $.get("http://ipinfo.io", function() { }, "jsonp").always(function (resp) { 
        var countryCode = (resp && resp.country) ? resp.country : ""; 
        callback(countryCode); 
       }); 
      } 
     }; 
     $("#phoneNumber").intlTelInput(settings); 
     $("#viber").intlTelInput(settings); 

     $("#phoneNumber").on('input', function (e) { 
      var intlNumber = $("#phoneNumber").intlTelInput("getNumber"); 
      $("#viber").intlTelInput("setNumber", intlNumber); 
     }); 
     $("#phoneNumber").on("countrychange", function (e, countryData) { 
      $("#viber").intlTelInput("setCountry", countryData.iso2); 
     }); 
</script> 

:私はスクリプトのセクションでスクリプトを位置だし、それが問題を解決

Uncaught TypeError: $(...).intlTelInput is not a function 
+0

ここでは、どこに文脈があるのですか、なぜドキュメントを準備してみませんか? – codeBloger

+1

'$(window).load(function(){/ * your code * /});'すべてのスクリプトと画像がロードされたときにロードイベントが実行されます。 – jcubic

+0

"intlTelInput.js"スクリプトがロードされた後、phoneNumberに "intlTelInput"を既にバインドしています。あなたの問題に関するもう少し情報を提供してください。あなたが受け取っているエラーは何ですか? – Strahdvonzar

答えて

0

@section Scripts { 
     <script src="~/lib/intl-tel-input/js/intlTelInput.js"></script> 
     <script> 
      $(document).ready(function() { 
       var settings = { 
        utilsScript: "../lib/intl-tel-input/js/utils.js", 
        initialCountry: "auto", 
        geoIpLookup: function (callback) { 
         $.get("http://ipinfo.io", function() { }, "jsonp").always(function (resp) { 
          var countryCode = (resp && resp.country) ? resp.country : ""; 
          callback(countryCode); 
         }); 
        } 
       }; 
       $("#phoneNumber").intlTelInput(settings); 
       $("#viber").intlTelInput(settings); 

       $("#phoneNumber").on('input', function (e) { 
        var intlNumber = $("#phoneNumber").intlTelInput("getNumber"); 
        $("#viber").intlTelInput("setNumber", intlNumber); 
       }); 
       $("#phoneNumber").on("countrychange", function (e, countryData) { 
        $("#viber").intlTelInput("setCountry", countryData.iso2); 
       }); 
      }); 
     </script> 
1

使用$(document).ready(function(){})

<script src="~/lib/jquery/dist/jquery.js"></script> 
<script src="~/lib/intl-tel-input/js/intlTelInput.js"></script> 
<script> 
    $(document).ready(function(){ 
     var settings = { 
      utilsScript: "../lib/intl-tel-input/js/utils.js", 
      initialCountry: "auto", 
      geoIpLookup: function (callback) { 
       $.get("http://ipinfo.io", function() { }, "jsonp").always(function (resp) { 
        var countryCode = (resp && resp.country) ? resp.country : ""; 
        callback(countryCode); 
       }); 
      } 
     }; 
     $("#phoneNumber").intlTelInput(settings); 
     $("#viber").intlTelInput(settings); 

     $("#phoneNumber").on('input', function (e) { 
      var intlNumber = $("#phoneNumber").intlTelInput("getNumber"); 
      $("#viber").intlTelInput("setNumber", intlNumber); 
     }); 
     $("#phoneNumber").on("countrychange", function (e, countryData) { 
      $("#viber").intlTelInput("setCountry", countryData.iso2); 
     }); 
    }); 
</script> 
+0

これは役に立ちません。 – Rodion

+0

このスクリプトをajaxリクエストで読み込んでいますか? –

関連する問題