2016-11-05 10 views
-1

Jvectormapライブラリを使用してワールドワイドのマップを表示しています。JavaScriptコードが起動時に一度だけ実行されます。

<!DOCTYPE html> <html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <link rel="shortcut icon" href="assets/ico/favicon.png"> 
    <title>Al Andulas</title> 
    <!-- Bootstrap core CSS --> 
    <link href="assets/css/bootstrap.css" rel="stylesheet"> 
    <link href="assets/css/font-awesome.min.css" rel="stylesheet"> 
    <!-- Custom styles for this template --> 
    <link href="assets/css/main.css" rel="stylesheet"> 
     <!-- Custom styles for VictorMap --> 
    <link href="assets/css/jquery-jvectormap-2.0.3" rel="stylesheet"> 
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> 
    <![endif]--> </head> 
    <body> 
    <!-- Fixed navbar --> 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">SP<i class="fa fa-circle"></i>T</a> 
     </div> 
     <div class="navbar-collapse collapse"> 
      <ul class="nav navbar-nav navbar-right"> 
      <li class="active"><a href="index.html">Main</a></li> 
      <li><a data-toggle="modal" data-target="#myModal" href="#myModal"><i class="fa fa-envelope-o"></i></a></li> 
      </ul> 
     </div><!--/.nav-collapse --> 
     </div> 
    </div> 
<div class="container-fluid"> 
     <div class="row centered"> 
      <br><br> 
      <div class="col-lg-12">  
      <div id="world-map" style="width: 100%; height: 100%"> 
      <!-- the Script that works only once --> 
    <script> 
    $(function(){ 
     $('#world-map').vectorMap({map: 'world_mill'}); 
    }); 
    </script> 
       </div> 
      </div> 
      </div> 
     </div> <!-- Bootstrap core JavaScript 
    ================================================== --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> 
    <script src="assets/js/bootstrap.min.js"></script> 
      <script src="assets/js/jquery-3.1.1.min.js"></script> <script src="assets/js/jquery-jvectormap-2.0.3.min.js"></script> 
<script src="assets/js/jquery-jvectormap-world-mill.js"></script> 
    </body> 
     </html> 

初めて私は、マップが表示されたブラウザを介して、エディタとビューにコードを貼り付けますが、私は更新すると、次のように私は、HTMLの表示ファイルにマップを含めるために、公式サイトGetting started Tutorialからチュートリアルに従っていますページには、マップは、サイト上ではもう表示されていないため、私は、JavaScriptコードを削除する必要がありますし、それを再度貼り直す:

<script> 
$(function(){ 
    $('#world-map').vectorMap({map: 'world_mill'}); 
}); 
</script> 

サイト上で永続的にマップを表示するための正しい方法は何か。

+1

は、スクリプトを使用すると、コンソールにエラーを取得しているナビゲーションセクション –

+0

にそのスクリプトを追加しますか? – hamza

+0

@hamza後のHTMLをemendedされるHTMLページ – Soviut

答えて

2

スクリプトが間違って配置されています。

  1. あなたは、あなたがそれを含める前にjQueryを使用しようとするため
  2. スクリプトがエラーをスロー<div>タグ内<script>を置くべきではありません。

    2.1。ブートストラップでは、jQueryを実行する必要があります。したがって、ブートストラップの前にjQueryをインクルードする必要があります。

正しい順序は、あなたが...それは問題で終わるのjQueryの2つのバージョンを含めている理由を自問するだろう残って今すぐすべての

<script src="assets/js/jquery-3.1.1.min.js"></script> 
<script src="assets/js/bootstrap.min.js"></script> 
<script src="assets/js/jquery-jvectormap-2.0.3.min.js"></script> 
<script src="assets/js/jquery-jvectormap-world-mill.js"></script> 
<script> 
    $(function(){ 
     $('#world-map').vectorMap({map: 'world_mill'}); 
    }); 
</script> 

だろう - 私が投げてきました古いバージョンがここにあります。

+0

ありがとう、私はより速いローダーのためにページの最後に配置されるべきスクリプトの正しい使い方の背後にあるコンセプトを理解しています。それは割り当てられたIDを介してHTMLのdivタグで呼び出されます – hamza

+0

@hamzaを理解する。実行する他のスクリプトが必要なため、スクリプトは他のスクリプトの後に読み込まれます – baao

0

最初の回答は正しいです。 しかし、あなたは次の試みることができます。

$.getScript('assets/js/jquery-jvectormap-world-mill.js', function() { 
    setTimeout(function(){ 
     $('#world-map').vectorMap({map: 'world_mill'}); 
    }, 90); 
}); 
関連する問題