将infowindow内容添加到多个选择列表onclick javascript

时间:2013-09-26 13:57:10

标签: javascript jquery google-maps google-maps-api-3

我想使用javascript将每个标记的infowindow内容添加到列表中。 我是通过下拉菜单完成的。当我从下拉列表中单击每个元素时,它将存储在列表分区中。但是,我想通过onclick事件在map infowindow内容中做同样的事情。

我想做同样的事情:http://odyniec.net/projects/selectlist/ 但是,我没有下拉菜单,而是在地图上有不同的信息页。

我应该在内容中添加什么来调用函数?

map infowindow:

var message = ["Ronak","Patel","Mark","Secret","Mission"];
var infowindow = new google.maps.InfoWindow({
    content: '<a onclick="$(\'select#name\').next()\
                   .find(\'option[value=&quot;\'+$(this).text()+\'&quot;]\')\
                   .trigger(\'click\');return false;" >'+message[num]+'</a>'
});

的javascript:

<script type="text/javascript">
$(document).ready(function () {
   $('select#name').selectList({ sort: true });
});

HTML:

 <div>
      <select id="name">
      <option value="?">?</option>
      </select>
  </div>

感谢。

1 个答案:

答案 0 :(得分:3)

您必须在所需选项上触发点击事件。

触发点击选项的示例,其值为“Ronak”:

content: '<a onclick="$(\'select#name\').next()\
                       .find(\'option[value=&quot;\'+$(this).text()+\'&quot;]\')\
                       .trigger(\'click\');return false;" >Ronak</a>'

与评论相关:

如何填充选择动态,例如通过给定的数组:

var message = ["Ronak","Patel","Mark","Secret","Mission"];
$(document).ready(function () {
  //append an option for each array-item
  $.each(message,function(){$('<option/>').val(this).text(this)
                              .appendTo('select#name');})

  //initialize the selectList
  $('select#name').selectList({ sort: true });

 });