我正在尝试根据用于Google地图集成的onclick事件启动AJAX调用。这里看到的info_window_content函数:http://jsfiddle.net/6xw2y/是用于创建驻留在地图本身内的div的调用。
“v”变量确实包含store_id。所以在该函数的开头行中,它具有以下内容:
var info_window_string = "<div class='maps_popup' id="+v.id+">";
现在我有一个我复制和修改过的onclick事件。第一个onclick事件工作正常,并按照应该刷新面板。第二个onclick事件不起作用,其代码如下:
$("#div").click(function(){
var store_id = $(this).find("div").attr("id");
var pathname = "ajax=1&store_id="+store_id+"&action=get_nearby_stores&distance="+distance+"&lat="+lat+"&lng="+lng+"&products="+$('#edit-products').val();
$("#pocp_content").load("file1.php?" + pathname);
});
这似乎不起作用。我也尝试将div标签更改为:
$("div").click(function(){
哪个仍然不起作用。作为附加的一面提示。有一次,我能够让它刷新,但是它将map-container作为store_id传递,而不是id本身。
我在这里缺少什么?
答案 0 :(得分:1)
我同意Joke_Sense10, 但我认为你可能没有将事件绑定到正确的DOM元素。
尝试在浏览器中打开开发人员控制台(在开发此代码的同时),然后输入$("#div")
以查看它返回的元素是否是您期望的元素。您也可以在代码中使用console.log($("#div"))
。
在评论中回答
答案 1 :(得分:0)
对于大量元素,始终使用.on()方法,因为后者将在DOM树中最顶层的节点之一上绑定单个事件侦听器。
$(document).on("click","#"+v.id, function(){