jQuery在使用Bootstrap 3的Google Map v3的信息窗口中工作不完美

jQuery not working perfectly in Info Window of Google Map v3 with Bootstrap 3

本文关键字:信息窗 信息 窗口 完美 工作 v3 Map Bootstrap Google jQuery      更新时间:2023-11-10

我正在尝试创建一个包含一些点击事件的信息窗口。

但它并不完美。

我在jQuery中做的代码是-

        //Set Center Button in Map ->> Click to Change Center of the Map
$(".change_center_map_button").click(function(clicked_item)
{
    clicked_item.preventDefault();
    clicked_item.stopPropagation();
        //Do what ever I want
    console.log('Set Center Button in Map Clicked');
    var latitude_this = $(this).parent().parent().parent().attr('lat');
    var longitude_this = $(this).parent().parent().parent().attr('lon');
    newMapCenter(latitude_this,longitude_this);
});

有人能帮我吗?

提前感谢您帮助

我认为这是因为您试图在加载DOM之前在单击时设置一个处理程序。尝试:

$(document).ready(function() {
    $(".change_center_map_button").click(function(event) {
        var clicked_item = $(this).parent().parent().parent();
        //Do what ever I want
        console.log('Set Center Button in Map Clicked');
        var latitude = clicked_item .attr('lat');
        var longitude = clicked_item .attr('lon');
        newMapCenter(latitude, longitude);
        event.preventDefault();
        event.stopPropagation();
    });
});

如果您需要一个实时事件(处理ajax请求中的新内容),请执行以下操作:

$(document).on("click", ".change_center_map_button", function() {
    var clicked_item = $(this).parent().parent().parent();
    //Do what ever I want
    console.log('Set Center Button in Map Clicked');
    var latitude = clicked_item .attr('lat');
    var longitude = clicked_item .attr('lon');
    newMapCenter(latitude, longitude);
    event.preventDefault();
    event.stopPropagation();
});

您还应该查看"最接近"以改进模式$(this).parent().parent().parent()