0

https://dl.dropboxusercontent.com/u/63617776/Capture.PNG

因此,在图像上,当您单击地图时,会更改一个 div。现在,当我单击 div 中的链接时,我希望 google maps div 更改为另一个地图。

但是,我编写的代码要么根本不触发,要么在我单击页面上的任意位置时触发。

$('#nowydwor').ready(function(){
$(this).click(function(){
         alert('foo');
    });
});

当然链接看起来像这样:{a id="nowydwor"} text {/a}(由于某种原因我无法输入 < 所以我将其替换为 {)

当用户出于某种原因单击页面上的任何位置时,就会触发此事件。此外,这只是一个测试代码,它是用来显示警报的。:) 有任何想法吗?

编辑:链接包含在 .html() 中的 switch() 语句中。

case '#mazowieckie':
   $('#info').html("CONTENT </h5><hr><strong><a id='nowydwor'>Skład Nowy Dwór Mazowiecki</a></strong> CONTENT");      

休息;

4

2 回答 2

1

仅当您在/上调用它以在 DOM 准备好后立即得到通知时,调用ready才有意义。documentwindow

尝试click直接在 DOM 元素上绑定处理程序:

$('#nowydwor').on('click', function(){
  alert('foo');
});
于 2013-07-29T12:00:59.360 回答
0

我认为您尝试做的是在内容#info更改后分配点击处理程序。不幸.ready()的是,它只是文档就绪事件的事件处理程序。它只触发一次。更改 html'#info'也不会触发任何事件(恕我直言)。

.on您可以在父元素上使用 - 方法来解决此问题。考虑这个 html 结构:

<div id="info">
  <!-- This content is dynamically loaded -->
  <a id="nowydwor">Click this to change map</a>
  <!-- End of dynamic content -->
</div>

这使得可以调用:

$('#info').on('click', '#nowydwor', function(){ /* Change map here... */ })

这会将事件处理程序分配给#info,仅当单击的元素匹配时才调用它'#nowydwor'。由于'#info'永远不会被删除,只有内容发生变化,您不必再次应用它。

唯一的一点是,您必须确定地图/地点的 id 是什么,因为所有链接的事件处理程序都是相同的。

于 2013-07-29T12:18:37.613 回答