繁体   English   中英

jQuery-.click在任何地方单击时触发应:在单击链接时

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

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

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

但是,我编写的代码根本不会触发,或者在我单击页面上的任何位置时都会触发。

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

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

当用户出于某种原因单击页面上的任意位置时,这将触发。 同样,这只是目前的测试代码,用于显示警报。 :) 有任何想法吗?

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

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不会触发任何事件(IMHO)。

您可以通过在父元素上使用.on -method来解决此问题。 考虑以下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 ,仅当clicked元素匹配'#nowydwor'时才调用该事件处理程序。 由于永远不会删除'#info' ,因此仅更改内容,因此您无需再次应用它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM