gmap3不是yii2主体上的函数

时间:2015-01-04 22:34:33

标签: javascript jquery yii2 jquery-gmap3

我创建了一个新项目yii2

进入head标签我用jquery google api和gmap充电

<?php
    $this->head();
    Yii::$app->view->registerJsFile('//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',['position' => yii\web\View::POS_HEAD]);

    Yii::$app->view->registerJsFile('http://maps.googleapis.com/maps/api/js?sensor=false',['position' => yii\web\View::POS_HEAD]);
    Yii::$app->view->registerJsFile('/js/gmap3/dist/gmap3.js',['position' => yii\web\View::POS_HEAD]);
    ?>

总是在脑袋里放这个脚本

<script type="text/javascript">
  $(function(){
    $('#test1').gmap3({
      marker:{
        address: "Haltern am See, Weseler Str. 151"
      },
      map:{
        options:{
          zoom: 14
        }
      }
    });
  });
</script>

问题出在正文部分

如果我使用此代码

<?php $this->beginBody() ?>
   <div id="test1" class="gmap3"></div>
<?php $this->endBody() ?>

不工作

如果我使用此代码

<?php //$this->beginBody() ?>
   <div id="test1" class="gmap3"></div>
<?php //$this->endBody() ?>

IT WORK

beginBody函数与gmap3冲突

Firebug告诉我

TypeError:$(...)。gmap3不是函数 $(&#39;#TEST1&#39)。gmap3({

1 个答案:

答案 0 :(得分:0)

非常感谢小费。

问题是收费jquery的默认点(yii2):在底页进入。 我解决了将默认jquery位置添加到head部分。 我修改了AppAsset.php文件,并将以下代码添加到AppAsset类

public $jsOptions = array('position' => \yii\web\View::POS_HEAD);

进入main.php(view / layout文件夹)后

<?php
    Yii::$app->view->registerJsFile('http://maps.googleapis.com/maps/api/js?sensor=false',['position' => yii\web\View::POS_HEAD]);
    $this->head();    
?>
<script type="text/javascript" src="js/gmap3/dist/gmap3.js"></script>
<script type="text/javascript">
  $(function(){
    $('#test1').gmap3({
      marker:{
        address: "Haltern am See, Weseler Str. 151"
      },
      map:{
        options:{
          zoom: 14
        }
      }
    });
  });
</script>
</head>

谢谢!