显示隐藏元素/模拟点击

时间:2018-01-09 15:07:45

标签: javascript jquery html google-maps

在网站底部,我有一个谷歌地图插件。在这里你可以看到一个黑色标记。如果单击该标记,则会显示一个包含文本的框。

我希望无需先单击标记即可显示该框。

我想我可以通过在网站加载后模仿点击来解决这个问题,但我无法找到如何解决该特定标记点击的问题。

有人能提示我解决方案吗?如果不破坏整个Map,我无法解决这个问题:/ ..

非常感谢。

此问题涉及以下网站: http://prusiklackierbetrieb.de/neu/black/indexnewimages.html

我找到了创建信息窗口的位置。但是,当我从&#34更改事件时,请单击" to" load"或者" domready"它不会开火。我认为这是因为脚本是在这些事件触发后加载的。如何默认打开窗口?

代码段:

!function(a) {
"use strict";
var t = {
    cntClass: "map",
    mapClass: "map_model",
    locationsClass: "map_locations",
    marker: {
        basic: "images/gmap_marker.png",
        active: "images/gmap_marker_active.png"
    },
    styles: [],
    onInit: !1
}
  , o = {
    map: {
        x: -73.9924068,
        y: 40.646197,
        zoom: 14
    },
    locations: []
}
  , n = function(t, o) {
    var n = t.parent().find("." + o.locationsClass).find("li")
      , e = [];
    return n.length > 0 && n.each(function(t) {
        var n = a(this);
        n.data("x") && n.data("y") && (e[t] = {
            x: n.data("x"),
            y: n.data("y"),
            basic: n.data("basic") ? n.data("basic") : o.marker.basic,
            active: n.data("active") ? n.data("active") : o.marker.active
        },
        a.trim(n.html()) ? e[t].content = '<div class="iw-content">' + n.html() + "</div>" : e[t].content = !1)
    }),
    e
};
a.fn.googleMap = function(e) {
    e = a.extend(!0, {}, t, e),
    a(this).each(function() {
        var t = a(this)
          , s = a.extend(!0, {}, o, {
            map: {
                x: t.data("x"),
                y: t.data("y"),
                zoom: t.data("zoom")
            },
            locations: n(t, e)
        })
          , i = new google.maps.Map(this,{
            center: new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)),
            styles: e.styles,
            zoom: s.map.zoom,
            scrollwheel: !1
        });
        e.onInit && e.onInit.call(this, i);
        var c = new google.maps.InfoWindow
          , l = [];
        for (var r in s.locations)
            l[r] = new google.maps.Marker({
                position: new google.maps.LatLng(parseFloat(s.locations[r].y),parseFloat(s.locations[r].x)),
                map: i,
                icon: s.locations[r].basic,
                index: r
            }),
            s.locations[r].content && (google.maps.event.addListener(l[r], "DOMContentLoaded", function() {
                for (var t in l)
                    l[t].setIcon(s.locations[t].basic);
                c.setContent(s.locations[this.index].content),
                c.open(i, this),
                a(".gm-style-iw").parent().parent().addClass("gm-wrapper"),
                this.setIcon(s.locations[this.index].active)
            }),
            google.maps.event.addListener(c, "closeclick", function() {
                for (var a in l)
                    l[a].setIcon(s.locations[a].basic)
            }));
        google.maps.event.addDomListener(window, "resize", function() {
            i.setCenter(new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)))
        })
    })
}}(jQuery);

2 个答案:

答案 0 :(得分:0)

当您为信息窗口打包时,只需致电open

infowindow.open(map, marker);

您可以在此处查看示例https://www.ibeernalia.com/#dorigen

答案 1 :(得分:0)

地图加载到IFRAME中,因此您无法模拟IFRAME中的元素点击。 您可以使用Google Maps API进行该操作

更多信息: