JQuery - 点击任何地方时触发的.click应该:点击一个链接

时间:2013-07-29 11:55:38

标签: javascript jquery click

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

因此,在图像上,当您单击地图时,会更改div。现在,当我点击div中的链接时,我希望谷歌地图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");      

中断;

2 个答案:

答案 0 :(得分:1)

调用ready只有在document / window上调用它才有意义,以便在DOM准备好后立即收到通知。

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

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

答案 1 :(得分:0)

我认为您尝试做的是在#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是什么,因为所有链接的事件处理程序都是相同的。

相关问题