JQuery - 单击任意位置时单击触发应:单击链接时

JQuery - .click triggering when clicked anywhere should: upon clicking on a link

本文关键字:单击 链接 任意 位置 JQuery      更新时间:2023-09-26

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

因此,与图像一样,当您单击地图时,div 会更改。现在,当我单击div中的链接时,我希望谷歌地图div更改为另一张地图。

但是,我

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

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

当然,链接如下所示: {a id="nowydwor"} text {/a} (由于某种原因我无法输入

当用户出于某种原因单击页面上的任意位置时,会触发此值。此外,这只是目前的测试代码,它旨在显示警报。:)有什么想法吗?

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

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

破;

只有在 DOM 准备就绪后立即调用document/window 上调用ready才有意义。

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

$('#nowydwor').on('click', function(){
  alert('foo');
});

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

您可以解决此问题,在父元素上使用 .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 是什么,因为所有链接的事件处理程序都是相同的。