在onclick和div上激活ajax调用

时间:2013-12-02 17:05:11

标签: javascript jquery ajax

我正在尝试根据用于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本身。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

我同意Joke_Sense10, 但我认为你可能没有将事件绑定到正确的DOM元素。

尝试在浏览器中打开开发人员控制台(在开发此代码的同时),然后输入$("#div")以查看它返回的元素是否是您期望的元素。您也可以在代码中使用console.log($("#div"))

在评论中回答

答案 1 :(得分:0)

对于大量元素,始终使用.on()方法,因为后者将在DOM树中最顶层的节点之一上绑定单个事件侦听器。

$(document).on("click","#"+v.id, function(){